正好@sixleaves 问到了,怎么用 macaca 并行测试 iOS 设备。macaca 我懂得不太多,爱莫能助,说下 ATX 是如何做的,其实也蛮简单的。看看能不能帮上点忙。
以前写过这方面的文章,直接参考这篇文章就好了 https://testerhome.com/topics/7220
平常我都是 SSH 远程连接 Mac 操作的,所以用的最多的是命令行。这里介绍下命令行如何启动 WDA
苹果爸爸规定,安装到手机的应用都需要经过签名,WDA 也不例外,所以需要有访问 keychain 的权限,使用命令将其打开
security unlock-keychain ~/Library/Keychains/login.keychain
这时会提示输入管理员的密码,输入下就好了。
多个手机跟一个手机的区别不大。我先介绍一个设备怎能启动 WDA,然后照胡楼画瓢,启动其他设备就可以了
国内的苹果机器都很蛋疼,必须用到 iproxy 转发,但是 iproxy 只监听本地的请求,所以还需要再转发一次。看不懂没关系,总之很头疼。
先安装一个我写的代理转发工具wdaproxy(PS: 使用方法可能会变)
brew install openatx/tap/wdaproxy
将多个苹果手机都插到 Mac 上,运行 idevice_id -l
获取设备的 udid 列表。选择第一个,比如 54ad172e22d8372eb752f413280731cdcc200954
命令行这样写
UDID=54ad172e22d8372eb752f413280731cdcc200954
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=$UDID" test
在开一个 Terminal,转发手机监听的 8100 端口到本地
# listen 8200
wdaproxy -u 54ad172e22d8372eb752f413280731cdcc200954 -p 8200
这个时候,加入安装了 ATX 的话,写段连接测试下
import atx
# localhost可以改成Mac电脑的IP
d = atx.connect("http://localhost:8200")
print d.status()
用同样的方法搞定其他手机即可。