背景
在之前的文章中,介绍了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自动化测试,敬请期待吧~