【AirtestIDE】从零开始:手把手教你搭建自动化测试环境
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 首次运行配置
启动后界面布局可能会让新手困惑,我习惯先做三件事:
- 调整窗口布局(视图-恢复默认布局)
- 设置中文界面(选项-语言-简体中文)
- 配置ADB路径(Android测试必备)
遇到过最典型的报错是"ADB not found",解决方法是在选项-设置里手动指定adb路径。如果是测试Windows应用,记得勾选"嵌入模式"选项,否则无法捕获窗口控件。
3. 设备连接实战:Android/iOS/Windows三端指南
3.1 Android设备连接
真机连接踩过的坑够写本书了。上周测试小米手机时发现USB调试开了还是连不上,最后发现要额外开启"USB安装权限"。完整流程应该是:
-
手机端:
- 设置-关于手机-连续点击版本号激活开发者模式
- 开启USB调试和USB安装
- 连接电脑选择"文件传输"模式
-
PC端:
# 在AirtestIDE设备窗口点击刷新ADB # 如果设备未显示尝试: adb kill-server adb start-server
模拟器推荐用MuMu,比夜神更稳定。遇到过端口冲突的问题,可以通过命令修改:
adb connect 127.0.0.1:7555 # MuMu默认端口
3.2 iOS设备连接
iOS连接需要额外准备:
- Mac电脑(必须)
- Xcode开发环境
- 开发者账号(免费账号即可)
关键步骤:
- 在Xcode中部署iOS-Tagent项目
- 使用iproxy转发端口:
iproxy 8100 8100 # 将设备端口映射到本地 - AirtestIDE中输入连接地址:ios://http://127.0.0.1:8100
3.3 Windows应用连接
测试桌面程序时,我习惯先用SPY++获取窗口句柄。在AirtestIDE中有两种模式:
- 嵌入模式(推荐):直接捕获程序窗口
- 非嵌入模式:通过窗口标题正则匹配
# 连接Windows应用的代码示例
connect_device("Windows:///?title_re=.*Chrome.*")
4. 第一个自动化测试脚本实战
4.1 录制与回放
用IDE自带的录制功能测试计算器:
- 点击Airtest辅助窗的红色录制按钮
- 在设备窗口依次点击:1 + 2 =
- 停止录制后生成脚本:
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连接故障
问题现象:设备列表为空 解决方案:
- 检查USB线(换线!换线!换线!)
- 重新插拔并确认USB调试授权
- 命令行执行:
adb devices # 确认设备是否列出 adb kill-server adb start-server
5.2 图像识别失败
优化技巧:
- 使用更独特的截图区域
- 调整识别参数:
touch(Template("button.png", threshold=0.8, rgb=True)) - 加入等待逻辑:
wait(Template("loading.png"), timeout=10)
5.3 跨设备兼容方案
在不同分辨率设备上运行时,建议:
- 使用相对坐标:
touch([0.5, 0.5]) # 点击屏幕中心 - 多准备几套分辨率对应的图片
- 优先采用Poco控件定位
最后分享一个真实案例:曾经用Airtest测试电商APP时,发现购物车图标在夜间模式会变色导致识别失败。后来解决方案是同时截取白天和夜晚的图标,设置threshold=0.6完美解决。这提醒我们做自动化测试时,一定要考虑各种边界场景。
更多推荐
所有评论(0)