介绍
Airtest支持iOS自动化测试,在Mac上为iOS手机部署iOS-Tagent之后,就可以使用AirtestIDE连接设备,像连接安卓设备一样,实时投影、控制手机。iOS测试不仅限于真机测试,iOS模拟器也可以进行。Mac端上部署完成后还可以提供给同一局域网内的windows上远程连接使用。同时支持airtest图像识别和poco UI检索。
本文介绍iOS自动化测试的部署过程,提供一个简单的测试脚本,列举了iOS测试过程中常见的问题。
安装部署
版本需求
当前Airtest支持的Xcode为11,本文档使用的版本信息具体如下:
Mac: 11.2.1 (Big Sur)
Xcode: 11.5
iOS: 13.5 (本文档采用iPhone 11模拟器)
安装Xcode 11.5
1. 从苹果的developer网站上搜索并下载Xcode 11.5
2. 文件比较大,下载完成后,打开自动解压
3. 解压完成后,建议将文件夹名字重命名,带上版本号,比如Xcode_11.5
4. 将解压后的文件夹拖拽到Application文件夹
安装配置iOS-Tagent
1. 下载工程文件
git clone git@github.com:AirtestProject/iOS-Tagent.git
2. 在Application中打开先前安装的Xcode(可能需要安装额外的组件)
3. 在Xcode中打开iOS-Tagent工程
4. Product > Scheme下选择WebDriverAgentRunner
5. Product > Destination下的iOS Simulators选择iPhone 11
6. 通过Product > Test启动测试,启动模拟器
7. iPhone 11模拟器启动后,会显示模拟器的画面
8. 通过浏览器访问Xcode所在Mac的API,能看到如下信息:
http://192.168.4.64:8100/status
9. 至此,Airtest IDE已经可以远程连接iOS了
10. Airtest IDE连接iOS模拟器成功后,手机画面会显示在IDE中
测试
仅使用图像识别
测试场景
1. 打开内置浏览器
2. 新建空白页
3. 输入baidu.com后显示百度页面
4. 检查页面中要有“百度一下”的图片
脚本
执行日志
命令行
"D:\Tools\AirtestIDE\AirtestIDE" runner "D:\workspace_airtest\ios_airtest.air" --device ios:///http://192.168.4.64:8100 --log "D:\workspace_airtest\logs\ios_airtest_20210218_01" D:\Tools\AirtestIDE\AirtestIDE reporter D:\workspace_airtest\ios_airtest.air --log_root D:\workspace_airtest\logs\ios_airtest_20210218_01 --outfile D:\workspace_airtest\logs\ios_airtest_20210218_01\log.html --static_root D:\Tools\AirtestIDE\airtest\report --lang zh --plugin airtest_selenium.report poco.utils.airtest.report
混用图像识别和Poco
测试场景
1. 单击“设置”
2. 单击“通用”
3. 单击“关于本机”
4. 检查序列号后,返回到设置主页面
脚本
执行日志
命令行
"D:\Tools\AirtestIDE\AirtestIDE" runner "D:\workspace_airtest\ios_poco.air" --device ios:///http://192.168.4.64:8100 --log "D:\workspace_airtest\logs\ios_poco_20210218_01" D:\Tools\AirtestIDE\AirtestIDE reporter D:\workspace_airtest\ios_poco.air --log_root D:\workspace_airtest\logs\ios_poco_20210218_01 --outfile D:\workspace_airtest\logs\ios_poco_20210218_01\log.html --static_root D:\Tools\AirtestIDE\airtest\report --lang zh --plugin airtest_selenium.report poco.utils.airtest.report