前言

因为 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 图我暂时就不制作了,自己去尝试吧。

遗留问题

另外还有两个遗留的问题。

  1. 横屏模式下坐标点击位置依然不对
  2. 真机测试貌似只能用 99 美元的开发者证书了,前段时间试了试普通账户已经不好使了

项目地址

http://github.com/NetEaseGame/AutomatorX 感兴趣的去 Star 一下项目。开发者的热情也需要鼓励的


↙↙↙阅读原文可查看相关链接,并与作者交流