使用tidevice启动WDA

2022-06-21 16:26:50 浏览数 (1)

背景

在之前的文章中,介绍了iOS自动化工具tidevice初探。使用tidevice可以对iOS设备进行截图、查询设备等交互操作。

提到iOS自动化测试中,都离不开WebDriverAgent,但是WebDriverAgent必须依赖在Mac系统上编译和运行,如果没有Mac的话,基本上告别做iOS自动化。

tidevice还有一个高级功能,号称不依赖xcode启动WebDriverAgent,这个工具就可以做到,并且可以在Windows、Linux上执行。

启动WebDriverAgent

第一步用数据线将iPhone手机连接到PC上,另外还需要手机上已经有WebDriverAgent这个App了。

使用xcode编译WebDriverAgent源码安装,或者也可以用开发者证书重签名的WebDriverAgent.ipa安装到手机。

这里我们使用WebDriverAgent源码编译安装,下载地址如下:

代码语言:javascript复制
git clone https://github.com/facebookarchive/WebDriverAgent

WDA介绍

安装依赖

代码语言:javascript复制
./Scripts/bootstrap.sh

安装依赖

设置签名账号,需要一个苹果开发者账号。

设置Product Bundle Identifier签名

编译WebDriverAgent,点击test按钮后进行编译并且安装到手机上。

image

接下来,启动就是一个命令tidevice xctest或者指定执行设备和bundleId。

启动命令如下:

代码语言:javascript复制
tidevice -u $UDID xctest -B $BUNDLE_ID(WDA的包名)

tidevice -u 20b1ce3fd4fdc433a48bc774e2b0c47014e61f1c xctest -B com.facebook.WebDriverAgentRunner.testxinxi.xctrunner

启动WDA成果

使用facebook-wda做自动化测试

Facebook WebDriverAgent Python客户端实现的API, 可以对iOS设备进行一些操作: 截图、点击、返回等操作。

官方地址: https://github.com/openatx/facebook-wda

安装命令: pip3 install -U facebook-wda

代码例子:

代码语言:javascript复制
import wda

c = wda.USBClient()
print(c)
print(c.info) 
c.home() # home键盘
print(c.app_current()) # 打印当前app
c.screenshot('screen.png') # 截图

打印数据如下:

结语

文本介绍了使用tidevice启动WDA,有个这个功能的加持,就可以在windows或者linux系统上跑UI自动化测试了。由于我手头上没有windows笔记本,下篇文章中我会介绍使用树莓派内置linux系统执行UI自动化测试,敬请期待吧~

0 人点赞