1. AirtestIDE简介:自动化测试新手指南

第一次接触自动化测试时,我被各种专业术语和复杂配置搞得晕头转向,直到发现了AirtestIDE这个神器。它就像测试领域的"美图秀秀",不需要写代码也能快速实现自动化操作。AirtestIDE是网易推出的跨平台UI自动化测试编辑器,支持Android、iOS、Windows三大平台,通过图像识别和控件定位技术,让编写测试脚本变得像搭积木一样简单。

这个工具特别适合:

  • 刚入行的测试新人(零代码基础也能快速上手)
  • 手工测试转自动化的同学(可视化操作降低学习门槛)
  • 需要快速验证产品功能的开发者(5分钟就能跑通完整测试流程)

我刚开始用的时候就发现,它把复杂的ADB命令、设备连接、脚本录制都封装成了可视化按钮。比如要测试一个APP的登录功能,传统方式要写几十行代码,而用AirtestIDE只需要截取登录按钮图片,再截取输入框位置,就能自动生成可运行的测试脚本。

2. 环境搭建:从下载到启动的全流程

2.1 软件下载与安装

官网下载地址直接搜索"Airtest官网"就能找到(注意认准netease.com的域名)。最近帮学弟安装时发现,Windows版解压后可能会被安全软件误报,记得添加信任。安装过程简单到离谱:

# 下载后解压得到的典型目录结构
AirtestIDE/
├── airtest
├── poco
├── AirtestIDE.exe  # Windows启动文件
└── requirements.txt

Mac用户需要注意:首次打开时要到系统设置-安全性与隐私中允许运行。遇到过最坑的问题是Python环境冲突,如果本地有多个Python版本,建议用官方包内的解释器。

2.2 首次运行配置

启动后界面布局可能会让新手困惑,我习惯先做三件事:

  1. 调整窗口布局(视图-恢复默认布局)
  2. 设置中文界面(选项-语言-简体中文)
  3. 配置ADB路径(Android测试必备)

遇到过最典型的报错是"ADB not found",解决方法是在选项-设置里手动指定adb路径。如果是测试Windows应用,记得勾选"嵌入模式"选项,否则无法捕获窗口控件。

3. 设备连接实战:Android/iOS/Windows三端指南

3.1 Android设备连接

真机连接踩过的坑够写本书了。上周测试小米手机时发现USB调试开了还是连不上,最后发现要额外开启"USB安装权限"。完整流程应该是:

  1. 手机端:

    • 设置-关于手机-连续点击版本号激活开发者模式
    • 开启USB调试和USB安装
    • 连接电脑选择"文件传输"模式
  2. PC端:

    # 在AirtestIDE设备窗口点击刷新ADB
    # 如果设备未显示尝试:
    adb kill-server
    adb start-server
    

模拟器推荐用MuMu,比夜神更稳定。遇到过端口冲突的问题,可以通过命令修改:

adb connect 127.0.0.1:7555  # MuMu默认端口

3.2 iOS设备连接

iOS连接需要额外准备:

  • Mac电脑(必须)
  • Xcode开发环境
  • 开发者账号(免费账号即可)

关键步骤:

  1. 在Xcode中部署iOS-Tagent项目
  2. 使用iproxy转发端口:
    iproxy 8100 8100  # 将设备端口映射到本地
    
  3. AirtestIDE中输入连接地址:ios://http://127.0.0.1:8100

3.3 Windows应用连接

测试桌面程序时,我习惯先用SPY++获取窗口句柄。在AirtestIDE中有两种模式:

  1. 嵌入模式(推荐):直接捕获程序窗口
  2. 非嵌入模式:通过窗口标题正则匹配
# 连接Windows应用的代码示例
connect_device("Windows:///?title_re=.*Chrome.*")

4. 第一个自动化测试脚本实战

4.1 录制与回放

用IDE自带的录制功能测试计算器:

  1. 点击Airtest辅助窗的红色录制按钮
  2. 在设备窗口依次点击:1 + 2 =
  3. 停止录制后生成脚本:
    touch(Template("1.png"))
    touch(Template("plus.png"))
    touch(Template("2.png"))
    touch(Template("equals.png"))
    

常见问题:图片识别率低时,可以:

  • 调整阙值参数threshold(默认0.7)
  • 改用Poco控件定位

4.2 脚本增强技巧

纯图像识别不够稳定时,可以结合Poco控件:

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco()

poco("com.android.calculator2:id/digit_1").click()
poco("com.android.calculator2:id/op_add").click()
poco("com.android.calculator2:id/digit_2").click()
poco("com.android.calculator2:id/eq").click()

4.3 断言与报告生成

完整的测试必须包含验证点:

assert_exists(Template("result_3.png"), "计算结果验证")
# 或者用Poco断言
assert_equal(poco("com.android.calculator2:id/result").get_text(), "3")

生成HTML报告:

airtest report test.air --log_root ./log

5. 常见问题排查手册

5.1 Android连接故障

问题现象:设备列表为空 解决方案:

  1. 检查USB线(换线!换线!换线!)
  2. 重新插拔并确认USB调试授权
  3. 命令行执行:
    adb devices  # 确认设备是否列出
    adb kill-server
    adb start-server
    

5.2 图像识别失败

优化技巧:

  1. 使用更独特的截图区域
  2. 调整识别参数:
    touch(Template("button.png", threshold=0.8, rgb=True))
    
  3. 加入等待逻辑:
    wait(Template("loading.png"), timeout=10)
    

5.3 跨设备兼容方案

在不同分辨率设备上运行时,建议:

  1. 使用相对坐标:
    touch([0.5, 0.5])  # 点击屏幕中心
    
  2. 多准备几套分辨率对应的图片
  3. 优先采用Poco控件定位

最后分享一个真实案例:曾经用Airtest测试电商APP时,发现购物车图标在夜间模式会变色导致识别失败。后来解决方案是同时截取白天和夜晚的图标,设置threshold=0.6完美解决。这提醒我们做自动化测试时,一定要考虑各种边界场景。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐