Airtest支持iOS自动化测试,在Mac上为iOS手机部署iOS-Tagent之后,就可以使用AirtestIDE连接设备,像连接安卓设备一样,实时投影、控制手机。iOS测试不仅限于真机测试,iOS模拟器也可以进行。Mac端上部署完成后,还可以提供给同一局域网内的Windows远程连接使用。同时支持Airtest图像识别和Poco UI检索。
本文介绍iOS自动化测试的部署过程,提供一个简单的测试脚本,列举了iOS测试过程中常见的问题。
版本需求:
在Mac下载iOS-Tagent ,使用 Xcode启动Test,具体启动过程可参考https://github.com/AirtestProject/iOS-Tagent 。当Xcode的log窗口输出下图信息的时候,就意味着部署成功了。
启动代理,在命令行下执行iproxy 8100 8100运行代理后,可以在浏览器打开 http://127.0.0.1:8100/inspector ,查看iOS设备是否能成功连接。
iproxy是usbmuxd附带的一个小工具,它的作用是将设备的某个端口映射到电脑的某个端口。Mac下可以通过brew安装brew install usbmuxd。
iproxy 8100 8100意思就是将手机的8100端口,映射到电脑的8100端口上。这样我们就能通过访问电脑的8100端口来访问手机了。
http://127.0.0.1:8100
或 http://x.x.x.x(MAC IP):8100:
,点击Connect按钮即可连接iOS设备,如图:
Xcode中iOS Simulator模拟器的部署过程和真机一样,但是可以省略步骤2,不需要另外执行proxy。
当Xcode的Log窗口看到下面内容的时候,就可以直接用地址http://x.x.x.x:8100
进行连接了,也就是Log里显示出来的ServerURLHere中的地址:
WebDriverAgentRunner-Runner[xxx:xxx] ServerURLHere->http://x.x.x.x:8100<-ServerURLHere
我们同样能够在Windows上连接一个远程的iOS设备,但是依然需要有Mac电脑与Xcode环境。首先按照上文的部署教程在Mac上启动iOS-Tagent之后,不再使用iproxy启动代理,而是改用wdaproxy。因为iproxy只支持本机端口的映射,而wdaproxy能够支持远程IP映射,这意味着可以在第二部PC上,通过访问IP的方式访问到Mac电脑上连接的iOS设备。
通过brew install openatx/tap/wdaproxy安装好wdaproxy
使用方法与iproxy一致,wdaproxy 8100 8100,或者不填写端口也可以,默认将会使用8100:
iOS的测试和其它设备差不多,支持图像识别和UI检索,下面简单介绍一个iOS测试例子:
from airtest.core.api import *
from poco.drivers.ios import iosPoco
poco = iosPoco()
auto_setup(__file__)
connect_device("ios:///x.x.x.x:8100")
keyevent("HOME")
snapshot()
swipe(Template(r"tpl1561985939879.png", record_pos=(0.356, -0.174), resolution=(750.0, 1334.0)), vector=[-0.685, 0.0481])
poco("Safari").click()
poco("URL").click()
text("airtest")
poco("People also search for").swipe([-0.0541, -0.4206])
exists(Template(r"tpl1560844284543.png", record_pos=(-0.292, 0.688), resolution=(750, 1334)))
(2)如何进行iOS多机测试
(3)API支持状况
请注意,iOS设备与Android设备有很大的不同,以下通用的Airtest的API在iOS上都是支持的:
但是以下API是不支持的:
原文:https://www.cnblogs.com/ShineLeem/p/11326189.html