1. 前言
很多同学想知道如何实现多设备“并行”运行Airtest测试,然后生成聚合的测试报告。今天我们就介绍下在我们开源项目里提供的1个多设备并行的示例demo:multi-device-runner 。
2. multi-device-runner的介绍和运行效果
我们可以在这个地址下clone或者下载multi-device-runner的代码样例:github.com/AirtestProj… :
按照给出的使用步骤,我们先来体验下这个demo的运行效果:
1)使用adb连接多台设备
以mumu模拟器和雷电模拟器为例,我们在终端使用 adb connect
命令分别连接上这2个模拟器:
同理再连接上雷电模拟器,之后我们可以用 adb devices
命令查看已经连好的2台设备:
2)安装 python3 环境以及 airtest pip install airtest
因这个demo里面的 .air
脚本只涉及了airtest语句,所以提示我们安装airtest库,如果我们需要运行的 .air
脚本里面还包含poco语句,我们还要把pocoui库安装上。
关于如何部署本地python环境,我们在官方教程文档有详细的描述:airtest.doc.io.netease.com/IDEdocs/3.4… 。
大致过程是,先在本地准备1个python3环境,目前我们最高兼容到3.9,不兼容3.10。
然后在这个python环境里,安装上我们脚本需要用到的自动化测试相关的库:
# 安装airtest框架 pip install airtest # 安装poco框架 pip install pocoui 复制代码
如果安装过程出现超时的报错,可以更换国内源来解决:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple airtest 复制代码
3)clone 或者下载样例,打开项目目录,运行代码 python run.py
在这个地址上:github.com/AirtestProj… ,clone或者下载代码的压缩包之后。
我们可以解压,打开项目目录,用pycharm编辑器打开 run.py
,并且设置pycharm当前项目的解释器为刚才准备好的python环境。(当然直接在命令行使用 python run.py
运行也可以)
运行效果如下:
可以看到,运行结束之后,这个demo会自动帮我们生成聚合的测试报告,方便我们查看多机的运行概况,也可以非常方便地查看单一设备的详细运行报告:
4)多设备并行测试示意图
从 run.py
的脚本我们可以看到,它实现是的获取adb连接上的所有设备,然后在每一台设备上跑给定的测试用例,跑完之后生成单机的测试报告,最后再汇总这些单机测试报告的结果,形成汇总(聚合)报告:
3. 添加自己的脚本实现多设备并行运行
如果同学们想要在这个demo上跑自己的测试用例,也非常简单,直接修改 run.py
脚本最后的初始化数据,即可指定运行的测试用例:
不过需要注意的是,如果指定的测试用例包含poco语句,则我们还要修改 run.py
里面生成测试报告的部分,添加poco的报告插件:
不添加poco报告插件的话,poco语句在airtest报告的显示会出现一些异常。
4. 多机并行demo的其它问题
1)只能跑1个脚本吗?
是的,这个demo一次只能跑1个脚本。如果想要跑多个脚本,需要同学们自行修改代码实现。
2)只适用于安卓设备吗?
是的,这个demo仅适用于安卓设备的多机并行,不适合iOS的多机并行,如需要实现iOS的多机并行,也需要同学们自行编写脚本实现。
3)其它多机教程
更多多机教程可以参考我们的往期推文: