前言:如果想分布式执行用例,用例设计必须遵循以下原则:
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中运行会报错

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# @project : API_Service
# @File    : test_1.py
# @Date    : 2021/6/15 3:07 下午
# @Author  : 李文良# demo:
import pytestdef test_01():print('测试用例1操作')def test_02():print('测试用例2操作')def test_03():print('测试用例3操作')def test_04():print('测试用例4操作')def test_05():print('测试用例5操作')def test_06():print('测试用例6操作')def test_07():print('测试用例7操作')def test_08():print('测试用例8操作')if __name__ == "__main__":pytest.main(["-s", "test_1.py",'--workers=2', '--tests-per-worker=4'])

二、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

pytest实现多进程与多线程运行超好用的插件,赶紧来瞄一眼吧!相关推荐

  1. Java多进程测试用例_Pytest xdist/Pytest并行多进程执行测试用例,pytestxdistpytestparallel...

    如果想分布式执行用例,用例设计必须遵循以下原则: 1.用例之间都是独立的, 2.用例a不要去依赖用例b 3.用例执行没先后顺序, 4.随机都能执行每个用例都能独立运行成功每个用例都能重复运行,不影响其 ...

  2. python廖雪峰_【Python】python中实现多进程与多线程

    进程与线程 进程(process)就是任务,是计算机系统进行资源分配和调度的基本单位[1].比如,打开一个word文件就是启动了一个word进程. 线程(thread)是进程内的子任务.比如word中 ...

  3. async python两个_【Python】python中实现多进程与多线程

    进程与线程 进程(process)就是任务,是计算机系统进行资源分配和调度的基本单位[1].比如,打开一个word文件就是启动了一个word进程. 线程(thread)是进程内的子任务.比如word中 ...

  4. 一文看懂Python多进程与多线程编程(工作学习面试必读)

    进程(process)和线程(thread)是非常抽象的概念, 也是程序员必需掌握的核心知识.多进程和多线程编程对于代码的并发执行,提升代码效率和缩短运行时间至关重要.小编我今天就来尝试下用一文总结下 ...

  5. 多进程与多线程的区别 - jihite

    多进程与多线程的区别 - jihite 时间 2014-03-16 10:16:00 博客园-所有随笔区 原文  http://www.cnblogs.com/kaituorensheng/p/360 ...

  6. GDB 调试多进程或者多线程应用

    GDB 是 linux 系统上常用的 c/c++ 调试工具, 功能十分强大. 对于较为复杂的系统, 比如多进程系统, 如何使用 GDB 调试呢? 考虑下面这个三进程系统 : 进程 ProcessChi ...

  7. python 多进程和多线程

    python 多进程和多线程 一.进程和线程 1.概念 进程: 一个进程就是一个任务,可以理解为一个程序.一个进程可以有多个线程,至少一个.多进程中,同一个变量,各自有一份拷贝存在于每个进程中,互不影 ...

  8. 多线程处理同一批数据_多进程和多线程的优缺点

    来源:http://www.cnblogs.com/Yogurshine/p/3640206.html 在Linux下编程多用多进程编程少用多线程编程. IBM有个家伙做了个测试,发现切换线程cont ...

  9. php实现多进程、多线程

    孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程.孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作. 僵尸进程:一个进程使用f ...

最新文章

  1. linux命令安装组件,Linux安装各种组件
  2. R语言sys方法:sys.chmod函数改变指定文件的权限、Sys.Date函数返回系统的当前日期、Sys.time函数返回系统的当前时间
  3. SectionIndexer中的getSectionForPosition()与getPositionForSection()
  4. underscore.js _.initial[Array]
  5. Web API--自定义异常结果的处理
  6. Laravel5.5 MySQL配置、读写分离及操作
  7. 计算机网络聚合怎么设置,交换机的端口聚合如何配置
  8. vs矩形框边框线显示被选中的区域;_条形码区域解码:Web小工具
  9. 自定义用户控件显示属性分类、描述、默认值
  10. SQL---------表的约束
  11. 洛谷P1589 泥泞路
  12. golang下的条件编译
  13. try catch finally return
  14. C 语言 运算符 全网最全整理
  15. 教你用Python轻松批量获取快手无水印视频以及详细信息!(侵权删)
  16. 说说你对servlet 的理解或者 servlet 是什么?
  17. win7指定网络名不再可用
  18. 计算机专业的书普遍都这么贵,你们都是怎么获取资源的?---给你们推荐一些编程电子书籍下载网站
  19. 准备学python用什么电脑_001-小白学python-初入python世界
  20. 2008-2020年各省地方债务余额数据(wind)

热门文章

  1. 如何创建和发布.asmx Web Service
  2. java中Map遍历的三种方式
  3. java和python对比
  4. 小程序bindtap事件与catchtap事件含义及区别
  5. 数据结构-严蔚敏视屏讲解
  6. excel两列数据如何模糊匹配
  7. 7-3 集体评分 (5 分)
  8. 对removeAttr()和splice()的使用。
  9. zigbee----over-the-air-upgrad学习笔记(1)
  10. 7.3_时间轴扭曲函数