Pytest学习(十六)- 分布式测试插件之pytest-xdist的使用
前言
类似TestNG中的多线程并发执行用例,只是python叫多进程,目的就是批量执行测试脚本,从而节省自动化测试时间。
分布式执行用例的设计原则(重中之重的重点)
- 用例之间是独立的,用例之间没有依赖关系,用例可以完全独立运行【独立运行】
- 用例执行没有顺序,随机顺序都能正常执行【随机执行】
- 每个用例都能重复运行,运行结果不会影响其他用例【不影响其他用例】
安装插件
pip3 install pytest-xdist -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pytest-xdist特性
- 测试运行并行化:如果有多个CPU或主机,则可以将它们用于组合的测试运行。 这样可以加快开发速度或使用远程计算机的特殊资源。
- --looponfail:在子进程中重复运行测试。 每次运行之后,pytest都会等到项目中的文件更改后再运行之前失败的测试。 重复此过程,直到所有测试通过,然后再次执行完整运行。
- 跨平台覆盖:可以指定不同的Python解释程序或不同的平台,并在所有这些平台上并行运行测试。
使用方法
执行某个目录下所有用例
1、不使用分布式测试
命令行:
pytest -s
所需时间如下:
2、使用分布式测试
命令行:
pytest -s -n auto
所需时间如下:
3、指定需要多少个CPU来跑用例
pytest -s -n 2
效果如图:
4、pytest-xdist和pytest-html结合使用
示例命令:
pytest -s -n auto --html=report.html --self-contained-html
5、pytest-xdist按照一定的顺序执行
pytest-xdist默认是无序执行的,可以通过 --dist 参数来控制顺序
-
**--dist=loadscope **
将按照同一个模块module下的函数和同一个测试类class下的方法来分组,然后将每个测试组发给可以执行的worker,确保同一个组的测试用例在同一个进程中执行
目前无法自定义分组,按类class分组优先于按模块module分组 -
--dist=loadfile
按照同一个文件名来分组,然后将每个测试组发给可以执行的worker,确保同一个组的测试用例在同一个进程中执行
优秀不够,你是否无可替代
软件测试交流QQ群:721256703,期待你的加入!!
欢迎关注我的微信公众号:软件测试君
分类:
Pytest
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理
2019-11-29 PowerMock学习(七)之Mock Constructor的使用
2017-11-29 Kali Linux没有声音的解决方法