多设备并行运行Airtest脚本和聚合报告的生成

简介: 多设备并行运行Airtest脚本和聚合报告的生成

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)其它多机教程


更多多机教程可以参考我们的往期推文:


相关文章
|
4月前
|
SQL 数据采集 DataWorks
DataWorks产品使用合集之依赖脚本实际运行成功了,但其状态却显示为未运行,从而导致下游脚本没有运行,是什么原因
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
监控 Serverless 开发工具
函数计算产品使用问题之要确保服务能在后台持续运行,而不依赖于WebUI是否打开,该怎么操作
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
LabVIEW配置可执行程序以运行更高版本的运行引擎
LabVIEW配置可执行程序以运行更高版本的运行引擎
114 1
|
6月前
|
弹性计算 运维 监控
|
6月前
|
测试技术
Appium 并行测试多个设备
Appium 并行测试多个设备
160 0
如何使用shell脚本在服务器中运行cdo命令进行批量合并、插值、求日均、月均等
如何使用shell脚本在服务器中运行cdo命令进行批量合并、插值、求日均、月均等
|
JSON 监控 数据格式
实时进程监控:Python脚本的开发与应用
Python作为一种多才多艺的编程语言,为开发实时进程监控工具提供了广泛的可能性。本文将介绍如何使用Python开发一个简单但强大的实时进程监控工具,以及示例代码的应用。
274 0
|
Web App开发 Java 开发工具
systrace: 系统级跟踪工具的解析
systrace是Android4.1版本之后推出的,对系统Performance分析的工具,该工具结合Android 内核的数据,最终会生产html文件。 systrace的功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各个子系统的运行状况等
|
编解码 网络协议 网络安全
如何处理X-Lite和eyeBeam常见故障及方法
我能够听到对方的声音,但是对方却听不到我的声音 -确认你的声卡工作正常。 -确定声卡没有被设置为静音。 -使用网络分析仪查看是否RTP报文都能够收到。 -检查是否是防火墙或X-Tunnels的问题。