ATX ATX 支持 iOS10 手机测试 方法说明

codeskyblue · November 10, 2016 · Last by jiangongzheng replied at July 28, 2020 · 5508 hits

前言

因为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一下项目。开发者的热情也需要鼓励的

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 26 条回复 时间 点赞

iproxy 又是一个黑科技呀

赞赞赞👍

—— 来自TesterHome官方 安卓客户端

天了噜, 普通账户已经不好使了么

赞,Macaca也是用iproxy先临时处理了 https://testerhome.com/topics/6314

普通开发者账号是可以用的

usage: iproxy LOCAL_TCP_PORT DEVICE_TCP_PORT [UDID] 我运行完这个命令后,一直显示的是waiting for connection,有点搞不懂。。。然后ip+端口还是连不上。。我确认我udid没有错。

#5楼 @lrw3716740 出现 waiting for connection说明正常了,连接的地址应该是 http://localhost:8100

#6楼 @codeskyblue 对,主要是这句,iproxy 8100 8100 命令产生作用了, 没明白这句 iproxy LOCAL_TCP_PORT DEVICE_TCP_PORT [UDID] 的作用是什么,运行后也是提示waiting for connection

#7楼 @lrw3716740 直译过来就是等待连接

#8楼 @codeskyblue 谢谢,根据你们的指导已经解决了问题。

元素定位,如果按钮名字相同怎么定位

吴佳佳 回复

下标拉

codeskyblue 回复

我试试😀

@Lihuazhang 猜测这个iOS10上无法用wifi连接这个bug是因为苹果在国行版本中的"网络权限"功能导致, xcuitest不被认为是程序因此无法被允许使用网络. 有认识苹果中国的人吗, 可以联系他们看看能否跟进这个问题
我自己使用xcuitest写段连接网络的代码, 提示error: Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline."
网络权限的问题可以参见这个文章http://www.cnblogs.com/fengmin/p/6116190.html)

use iproxy 127.0.0.1 can connect iphone but ip address can't connect iphone
when i use webdriveragent,i excute iproxy 8100 8100,i can access 127.0.0.1:8100 but can't access 10.243.242.19:8100 10.243.242.19 is my ip.

pluie-cloudy 回复

国外友人吗?用tcp转发下,iproxy默认只监听localhost。或者也可以用用我写的一个专门处理这个问题的项目 wdaproxy

codeskyblue 回复

yes,i will try your method,but iproxy can't do something for this condition?

pluie-cloudy 回复

我不知道

codeskyblue 回复

curl: (7) Failed to connect to github-production-release-asset-2e65be.s3.amazonaws.com port 443: Operation timed out
Error: Failed to download resource "wdaproxy"

pluie-cloudy 回复

So, you are in China now. You need to know how to cross the GFW.

codeskyblue 回复

if i loaded you project,how can i run it. ths.

我手机上webdriverAgent启动了,用iproxy 8100 8100,后。 访问电脑http://xxxxx:8100/inspector,打不开,有知道为什么的吗?我搞不明白,希望知道的能解答下,谢谢

小萨 回复

我也遇到这个问题了,找到解决办法了吗

支持flutter吗

noshuai 回复

想问下这个问题,现在解决没有,我今天出现了一样的问题

noshuai 回复

想问下这个问题现在解决了吗?

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up