前言
- 對iOS真機做自動化測試,需要像連接安卓設備一樣,實時投影、控制手機。
- 難點在於不同的iOS版本、Xcode版本、WebDriverAgent版本難以一次性部署調試成功。
- WebDriverAgent應用必須安裝在手機上,才能完成對iOS系統的操作,所以選擇WDA版本很關鍵。
環境
Xcode盡量升級到最新版本,iphone版本盡量大於10:
- Xcode:13.2.1 (當前2022年3月10日)
- iOS:14.7.1
- MacOS:12.2.1
- Python:3.8.6
部署流程
- Mac下載WebDriverAgent,使用Xcode啟動Test
- 啟動代理,通過命令執行 iproxy 8100 8100 運行代理后,通過瀏覽器打開 http://127.0.0.1:8100/status ,查看iOS設備是否連接成功。
安裝依賴
WebDriverAgent使用appium修改版,這樣能滿足iOS高版本測試需求
直接在github上下載:https://github.com/appium/WebDriverAgent
或者git clone
git clone https://github.com/appium/WebDriverAgent
iproxy是usbmuxd附帶的一個小工具,它的作用是將設備的某個端口映射到電腦的某個端口。
mac下可以通過brew安裝
brew install usbmuxd
iproxy 8100 8100 意思就是將手機的8100端口,映射到電腦的8100端口上。這樣我們就能通過訪問電腦的8100端口來訪問到手機了。
步驟
參考:https://cloud.tencent.com/developer/article/1864001
安裝Xcode
設置證書
進入WebDriverAgent根目錄,打開WebDriverAgent.xcodeproj文件
在Xcode中的TARGETS里選中WebDriverAgentLib,開啟自動管理簽名
選中WebDriverAgentRunner,像WebDriverAgentLib一樣設置證書
如果是個人免費版的證書,還需要修改下WebDriverAgent的BundleID,隨便加后綴,不要跟別人重復就好
運行測試
分別選擇WebDriverAgentRunner和目標設備
然后點擊Product菜單下的Test,這時候會提示輸入本機電腦的密碼,輸入完成后點擊始終允許即可。
如果是個人免費版證書還會彈出下面的提示:
因為WDA應用沒有被信任,需要進入手機設置-> 通用-> 描述文件與設備管理,點擊開發者APP信任一下就可以了。
然后再次運行Test,就可以在Xcode控制台看到下面的輸出信息:
啟動代理
終端運行命令
iproxy 8100 8100
將手機的8100端口,映射到電腦的8100端口上。這樣我們就能通過訪問電腦的8100端口來訪問到手機了。
查看iOS設備連接狀態
瀏覽器輸入url:http://127.0.0.1:8100/status
通過AirtestIDE連接設備
打開設備窗
在 AirtestIDE 的設備窗口,輸入地址:http://127.0.0.1:8100 或 [http://x.x.x.x(MAC IP):8100](http://x.x.x.x(MAC IP):8100):
點擊Connect按鈕即可連接iOS設備,如圖: