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

相关推荐
呼啦啦5615 小时前
初认识测试
测试
甜甜圈圈子8 小时前
从传统测试到敏捷测试:你必须跨越的7大难关!
测试
智擎软件测评小祺2 天前
渗透测试报告关键模块拆解
网络·web安全·渗透测试·测试·检测·cma·cnas
智擎软件测评小祺2 天前
渗透测试报告撰写:漏洞发现到验证流程
网络·渗透测试·测试·cma·第三方检测·cnas·渗透测试报告
jaycyj3 天前
Web端抓包工具操作与应用
测试
神秘的t4 天前
抽奖系统测试报告
测试
阳光普照世界和平5 天前
单元测试工具现状及实现思路探析
测试·软件质量
jaycyj5 天前
Web项目功能测试用例实战
测试
智擎软件测评小祺5 天前
从报告看懂安全隐患,提升防护能力
安全·web安全·渗透测试·测试·检测·cma·cnas
独断万古他化6 天前
AI 赋能自动化测试实战:从用例生成到 CI/CD 全流程落地
人工智能·ci/cd·测试