基于tidevice在Linux中进行iOS自动化测试

2022-06-21 16:29:32 浏览数 (1)

介绍

续上篇文章使用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性能数据,敬请期待吧~

0 人点赞