iOS安装WebDriverAgent避坑详解
前言
- 对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设备,如图: