介紹
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