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 的坐标偏移),界面微调就可能导致定位失败,需要重新编写定位逻辑。

相关推荐
虫无涯6 小时前
【分享】AgileTC测试用例管理平台使用分享
测试
zhuyasen21 小时前
PerfTest: 压测工具界的“瑞士军刀”,原生支持HTTP/1/2/3、Websocket,同时支持实时监控
go·测试
霍格沃兹_测试3 天前
Browser Use 浏览器自动化 Agent:让浏览器自动为你工作
人工智能·测试
程序员二黑3 天前
Postman接口测试全攻略:从入门到精通,看这一篇就够了
单元测试·测试·ab测试
叫我阿柒啊4 天前
Java全栈工程师的面试实战:从基础到复杂问题的完整解析
java·数据库·spring boot·微服务·vue3·测试·全栈开发
Apifox4 天前
理解和掌握 Apifox 中的变量(临时、环境、模块、全局变量等)
前端·后端·测试
柒柒的代码学习日记5 天前
博客系统Web自动化测试项目:从用例设计到脚本执行全流程解析
自动化测试·测试·测试项目
王喵喵喵5 天前
每天一个安卓测试开发小知识之 (四)---常用的adb shell命令第二期 pm命令
android·测试