开始
1,从github上下载代码
2,运行初始化脚本
./Scripts/bootstrap.sh
该脚本会使用Carthage下载所有的依赖,使用npm打包响应的js文件
执行完成后,直接双击打开WebDriverAgent.xcodeproj这个文件。
设置证书
因为安装到真机上都是需要证书签名的,用免费的证书我没有搞定,最后用的还是99美元的开发者证书。
画圈的地方,从左向右依次点击。最后Team那一栏,选择你买到的开发者证书帐号。(个人证书也可以)
接着在TARGETS里面选中WebDriverAgentRunner,用同样的方法设置好证书
如果是免费版的个人证书,还需要修改下WebDriverAgent的BundleID,随便加点后缀,只要不跟其他人的重名就好 (这里参考了macaca的一篇文章 https://testerhome.com/topics/8085 )
运行与测试
菜单栏选择目标设备
Scheme选择WebDriverAgentRunner
最后运行 Product -> Test
一切正常的话,手机上会出现一个无图标的WebDriverAgent应用,启动之后,马上又返回到桌面。这是很正常的不要奇怪。
此时控制台界面可以看到设备的IP。如果看不到的话,使用这种方法打开
通过上面给出的IP和端口,加上/status合成一个url地址。例如http://10.0.0.1:8100/status,然后浏览器打开。如果出现一串JSON输出,说明WDA安装成功了。
端口转发
有些国产的iPhone机器通过手机的IP和端口还不能访问,此时需要将手机的端口转发到Mac上。
# 使用--HEAD安装最新版本
$ brew install libimobiledevice --HEAD
$ iproxy 8100 8100
使用iproxy --help 可以查到更具体的用法。 这时通过访问http://localhost:8100/status确认WDA是否运行成功。
而inspector的地址是http://localhost:8100/inspector, inspector是用来查看UI的图层,方便写测试脚本用的
使用终端替代Xcode
通常来说为了持续集成,能够全部自动化比较好一些
# 解锁keychain,以便可以正常的签名应用,
PASSWORD="replace-with-your-password"
security unlock-keychain -p $PASSWORD ~/Library/Keychains/login.keychain
# 获取设备的UDID
UDID=$(idevice_id -l | head -n1)
# 运行测试
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=$UDID" test
总结
1,在使用过程中有时候会莫名其妙的手机与电脑断开连接,暂时知道是何原因导致
2,如果用来进行自己产品自动化测试应该够用了, 如果像博主这样一台电脑连接多部手机自动搞别人的app就算了, 因为总有其中一个在使用过程中会断开连接.