pytest实现多进程与多线程运行超好用的插件
前言
如果想分布式执行用例,用例设计必须遵循以下原则:
1、用例之间都是独立的,
2、用例a不要去依赖用例b
3、用例执行没先后顺序,
4、随机都能执行每个用例都能独立运行成功每个用例都能重复运行,不影响其它用例
这跟就我们平常多个人工测试一样,用例都是独立的,可以随机分配不同人员执行,互相不依赖,用例之间也不存在先后顺序
一、pytest-parallel
安装:pip install pytest-parallel
常用参数配置:
- --workers=n:多进程运行需要加此参数, n是进程数。默认为1
- --tests-per-worker=n:多线程需要添加此参数,n是线程数
如果两个参数都配置了,就是进程并行,每个进程最多n个线程,总线程数:进程数*线程数
注意:在windows上进程数永远为1。
需要使用 if?name?== “main”:,在dos中运行会报错
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
|
二、pytest-xdist
安装:pip install pytest-xdist
不支持多线程
常用参数配置:
- -n=*:*代表进程数
多cpu并行执行用例,直接加个-n参数即可,后面num参数就是并行数量,比如num设置为3
- -n auto 自动侦测系统里的CPU数目
- -n num 指定运行测试的处理器进程数
三、对比说明
pytest-parallel比pytst-xdist相对好用,功能支持多。
pytst-xdist不支持多线程,而pytest-parallel支持python3.6及以上版本,如果想做多进程并发在linux或者mac上做,在Windows上不起作用(Workers=1),如果做多线程linux/mac/windows平台都支持,进程数为workers的值。
pytest-parallel常用配置命令如下
- –workers (optional) *:多进程运行需要加此参数, *是进程数。默认为1。
- –tests-per-worker (optional) *:多线程运行, *是每个worker运行的最大并发线程数。默认为1
pytest test.py --workers 3:3个进程运行
pytest test.py --tests-per-worker 4:4个线程运行
pytest test.py --workers 2 --tests-per-worker 4:2个进程并行,且每个进程最多4个线程运行,即总共最多8个线程运行。
四、特别注意
1、pytest-parallel的workers参数在windows系统下永远是1,在linux和mac下可以取不同值。
2、pytest-parallel加了多线程处理后,最后执行时间是运行时间最长的线程的时间。
3、在windows下想用多进程的选pytst-xdist; 想用多线程的选pytest-parallel
?现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!?希望能帮助到你!【100%无套路免费领取】
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!