Appium 结合 TestNG 并行执行测试

Appium 测试框架可以让我们使用不同的编程语言(Java、Python、Ruby、JavaScript)测试不同移动端平台的应用(Android、iOS),目前也是最火的移动端测试框架。这篇文章会带着大家学习到如何在不同设备中并行执行测试。

并行执行测试能够带来的好处:

提升测试效率,我们可以将测试用例分发给不同的设备执行,从而可以减少整体测试所花费的时间

同时我们可以将相同的测试用例给不同的设备去执行,特别适合需要做兼容性测试的场景

Appium 本身并没有提供并行执行这样的功能,我们可以借助 Java 中最流行的 TestNG 单元测试框架所提供的功能实现。

1、TestNG简介

TestNG(Next Generation) 下一代单元测试框架技术,在这之前 Junit 在 Java 世界中是主流的选择,由于 TestNG 的强大和易用性,现在已逐步取代 Junit 成为最流行的单元测试框架技术。

TestNG 优点

TestNG 与 Junit 是比较类似的,但是与其相比提供了更为强大的特性并且更加易用,包括不仅限于

  • 更加丰富的注解

  • 超时、异常测试

  • 参数化测试

  • 并行测试

2、TestNG并行测试配置

TestNG 可以支持通过 XML 配置并发测试

如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a

两个关键配置:

  • parallel="{methods/classes/tests}"

    指定 methods/classes/tests 标签在同一线程中

  • thread-count="{你想要并发执行的线程数量}"

执行 TestNG.xml 文件,可以看到两个测试类会在同一时间并行执行测试。

3、TestNG结合Appium并发执行测试

Step1:开启多个 Appium Server,指定不同的监听端口3

Step2:adb 连接上多台设备

这里以夜神的多开功能演示,默认第一台夜神模拟器端口 62001,第二台端口 62025,第三台 62026...

多台真机只需打开 USB 调试模式,勾选弹框即可

Step3:编写测试脚本

Step4:TestNG.xml 文件配置

运行效果:

相关推荐
HAH-HAH1 小时前
【Python 入门】(2)Python 语言基础(变量)
开发语言·python·学习·青少年编程·个人开发·变量·python 语法
武子康2 小时前
AI-调查研究-76-具身智能 当机器人走进生活:具身智能对就业与社会结构的深远影响
人工智能·程序人生·ai·职场和发展·机器人·生活·具身智能
递归不收敛2 小时前
一、Java 基础入门:从 0 到 1 认识 Java(详细笔记)
java·开发语言·笔记
SunnyDays10112 小时前
Python 轻松实现替换或修改 PDF 文字
python·替换pdf文字·修改pdf·修改pdf文字
Just_Paranoid3 小时前
【Settings】恢复出厂设置密码校验
android·python·settings·sha256·hmac-sha256
zhangfeng11333 小时前
win7 R 4.4.0和RStudio1.25的版本兼容性以及系统区域设置有关 导致Plots绘图面板被禁用,但是单独页面显示
开发语言·人工智能·r语言·生物信息
西猫雷婶4 小时前
pytorch基本运算-Python控制流梯度运算
人工智能·pytorch·python·深度学习·神经网络·机器学习
子午4 小时前
Python的uv包管理工具使用
开发语言·python·uv
java1234_小锋4 小时前
Scikit-learn Python机器学习 - 分类算法 - 朴素贝叶斯
python·机器学习·scikit-learn
凡梦千华4 小时前
Django时区感知
后端·python·django