Air test框架与appium的优势

一、车载版 APK 的特殊性对测试框架的要求

喜马拉雅车载版与普通手机 APP 的差异,直接影响了框架的选择:

  1. 交互场景更简单,但控件定位难度更高
    车载 APP 的核心功能集中在 "音频播放(如播放 / 暂停 / 切换节目)、搜索(找节目)、音量调节" 等少数高频操作,界面元素少、逻辑简单(符合驾驶场景安全设计)。但由于车载系统(如 Android Auto、Linux 车载系统)的定制化程度高,APP 的控件属性(如 ID、class)可能不规范(甚至无固定属性),传统依赖控件定位的框架(如 Appium)容易出现定位失败。
  2. 屏幕适配特殊,对图像识别更友好
    车载屏幕尺寸、分辨率差异大(如 7 寸中控屏、12 寸悬浮屏),但核心功能按钮(如 "播放键""搜索图标")的视觉特征(形状、位置相对固定)比控件属性更稳定。例如,无论屏幕大小,"播放按钮" 通常是一个三角形图标,位置在界面底部中央,这种视觉特征比控件 ID 更可靠。
  3. 冒烟测试的核心诉求:快速验证、低维护成本
    冒烟测试的目标是 "用最少的脚本,快速验证核心功能是否可用"(如 "打开 APP→搜索'新闻'→播放第一条结果"),不追求复杂逻辑。因此,脚本需要编写快、运行稳、改起来简单,而不是追求极致的灵活性或深度功能覆盖。

二、AirTest 相比 Appium 的核心优势(适配车载场景)

1. 图像识别 + 控件识别双模式,适配车载控件不规范问题

  • AirTest 的核心特性是基于图像识别的 UI 自动化(通过截图匹配目标元素),同时支持 poco 框架(控件识别)。对于车载 APP 中 "控件属性缺失 / 不稳定" 的场景,直接通过截图(如 "播放按钮的图标")定位元素,比 Appium 依赖控件 ID 更可靠。
  • 例如:测试 "播放" 功能时,AirTest 可以直接截取 "播放按钮" 的图片,脚本中用touch(Template("play_button.png"))即可点击,无需关心控件 ID 是否变化;而 Appium 若用find_element_by_id("play_btn"),一旦车载系统升级导致控件 ID 变更,脚本就会失效。

2. 脚本编写门槛低,适合快速搭建冒烟用例

  • AirTest 提供可视化 IDE(AirtestIDE),支持 "录制操作生成脚本":打开 IDE→连接车载设备→手动操作一遍核心流程(如播放 / 搜索)→自动生成 Python 脚本,无需手动写定位逻辑。对于冒烟测试的简单场景,非专业自动化工程师也能快速上手。
  • 而 Appium 需要手动编写代码(如driver.find_element().click()),且需熟悉控件定位语法(如 XPath),编写效率低,不符合冒烟测试 "快速落地" 的需求。

3. 对车载系统兼容性更好

  • 车载系统可能基于定制化 Android(甚至非 Android 系统),Appium 依赖 Android SDK 的 UIAutomator 框架,若车载系统未集成 UIAutomator,可能无法正常连接设备;而 AirTest 的图像识别基于屏幕截图,只要能通过 USB/ADB 连接设备并获取屏幕画面,就能运行脚本,兼容性更广。

4. 低维护成本,适应频繁版本迭代

喜马拉雅车载版可能随车载系统升级频繁迭代,但核心功能按钮的视觉特征(如 "搜索图标")很少变化。AirTest 脚本若基于图像识别,即使 APP 界面微调(如按钮位置偏移 10 像素),通过调整图像匹配阈值(如threshold=0.8)即可兼容,无需大幅修改脚本;而 Appium 若依赖控件位置(如 XPath 的坐标偏移),界面微调就可能导致定位失败,需要重新编写定位逻辑。

相关推荐
程序员二黑1 天前
Selenium元素定位总失败?这8种定位策略你必须掌握
单元测试·测试·ab测试
程序员二黑2 天前
自动化测试入门:从零开始搭建你的第一个WebUI项目
单元测试·测试·ab测试
从前慢,现在也慢2 天前
(3)Bug篇
学习·bug·测试
霍格沃兹_测试5 天前
软件测试 | 测试开发 | 一文带你了解K8S容器编排(上)
测试
mzhan0175 天前
Linux: network: 拔插网线 interface down/up测试的痛点
linux·服务器·测试·破坏性测试
昵称为空C6 天前
Jmeter 性能测试利器-1(入门指南)
后端·测试
漫谈测试6 天前
链路分析在性能测试各阶段的应用及优势
测试
蛋仔聊测试7 天前
Playwright 文件上传与下载完成判断全指南
python·测试
程序员二黑8 天前
接口测试全流程实战:从工具到架构的深度解析
单元测试·测试·ab测试