介绍
续上篇文章使用tidevice启动WDA,tidevice号称可以跨平台执行,在windows和linux都可以使用。另外tidevice的一个大杀器,不依赖xcode启动WebDriverAgent,这个工具就可以做到。如果在window和linux中可以启动wda,就说明可以进行自动化测试。
我拿出压箱底的树莓派了,树莓派中内置linux系统,如果对树莓派感兴趣的小伙伴,可以看看这篇文章教你入门树莓派、树莓派搭建UI自动化环境。
先放一张图全家福,左边的就是树莓派,可以理解为一台运行Linux的小型服务器,右边插着一台iPhone手机。
树莓派 & iPhone 6P
前置准备
在树莓派中安装tidevice工具,命令如下:
代码语言:javascript复制pip3 install tidevice
查询设备命令如下:
代码语言:javascript复制tidevice list
可以看到已经打印出连接设备信息了。
另外就是在Linux在能启动WDA的前提,手机中已经安装了WDA应用,可以在Mac上提前编译和安装完成。
启动WDA命令:
代码语言:javascript复制tidevice -u 20b1ce3fd4fdc433a48bc774e2b0c47014e61f1c xctest -B com.facebook.WebDriverAgentRunner.testxinxi.xctrunner
如出现下图,说明启动WDA成果。
自动化测试
安装python版本的facebook-wda库,可以通过API操作手机,截图、点击等操作。
代码语言:javascript复制pip3 install -U facebook-wda
我们编写一个脚本,启动B站然后使用随机坐标点击100次。
代码例子:
代码语言:javascript复制import time
import wda
from random import randint
c = wda.USBClient()
print(c)
print(c.info)
#c.home() # home键盘
print(c.app_current()) # 打印当前app
#c.screenshot('screen.png') # 截图
with c.session('tv.danmaku.bilianime') as s:
for i in range():
x = randint(,)
y = randint(,)
print(x,y)
s.click(x, y)
如下图,说明执行成果。
为了直观展示效果,我放一个视频演示在这里。
http://mpvideo.qpic.cn/0bc3ieacmaaameaozufa45rfaqodezaqajqa.f10002.mp4?
结语
本文介绍了在Linux下如何使用tidevice进行WDA自动化测试的,tidevice的出现打破了原有只能在Mac才能进行自动化的局限性、提高自动化环境的利用率。
提前剧透下,下文会使用tidevice采集iOS性能数据,敬请期待吧~