因为 AutomatorX 的知名度还是不怎么高,所以开始还是要简介一下这玩意是干什么用的。
一句话简单的说明下:做手机应用自动化测试的。
ATX 之前发表过很多的文章,关于如何使用 ATX 测试 iOS 应用可以参考这篇文章 ATX 系列 - 如何测试网易云音乐 (iOS 篇)
这篇文章说的是如何搞定 iOS10 的测试。
因为 ATX 的 iOS 支持主要是依赖 facebook 开源的WebDriverAgent
所以只要 WDA(WebDriverAgent) 支持了 iOS10,就可以了。到目前为止 2016-11-09 这个 issue iOS10 issue on WDA 还在。
根据 issue 中的一些回复,大概了解到了,通过 wifi 直接连接手机是不行的。但是通过 USB 跟手机通信就可以正常工作。
USB 通信有很多方案,不过我最喜欢 iproxy,因为比较简单。
iproxy 的安装参考这篇文章 http://iphonedevwiki.net/index.php/SSH_Over_USB
安装完之后,测试一下
$ iproxy -h
usage: iproxy LOCAL_TCP_PORT DEVICE_TCP_PORT [UDID]
打开控制台,这样输入命令
$ iproxy 8100 8100
waiting for connection
命令执行完之后,访问本地的 localhost:8100,就直接转发到了手机的 8100 端口。
接下来演示一下怎么用 ATX 打开 iPhone 自带的计时器,开始然后退出
import atx
d = atx.connect("http://localhost:8100")
d.start_app("com.apple.mobiletimer")
d(text=u'计时器').click()
d(text=u'开始计时').click()
d(text=u'取消').click()
d.stop_app()
GIF 图我暂时就不制作了,自己去尝试吧。
另外还有两个遗留的问题。
http://github.com/NetEaseGame/AutomatorX 感兴趣的去 Star 一下项目。开发者的热情也需要鼓励的