pytest实现多进程与多线程运行超好用的插件


Posted in Python onJuly 15, 2022

前言

如果想分布式执行用例,用例设计必须遵循以下原则:

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 pytest

def 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实现多进程与多线程运行超好用的插件

二、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实现多进程与多线程运行超好用的插件的文章就介绍到这了,更多相关pytest 多进程与多线程运行插件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
10款最好的Web开发的 Python 框架
Mar 18 Python
深入解析Python编程中JSON模块的使用
Oct 15 Python
老生常谈Python基础之字符编码
Jun 14 Python
Python3.6连接Oracle数据库的方法详解
May 18 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
Jul 18 Python
python开启debug模式的方法
Jun 27 Python
Python pandas RFM模型应用实例详解
Nov 20 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
Apr 14 Python
python实现最短路径的实例方法
Jul 19 Python
Django创建一个后台的基本步骤记录
Oct 02 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
Jan 27 Python
python如何将mat文件转为png
Jul 15 #Python
python读取mat文件生成h5文件的实现
Jul 15 #Python
全网非常详细的pytest配置文件
Jul 15 #Python
Python如何加载模型并查看网络
Jul 15 #Python
Python绘制散点图之可视化神器pyecharts
Jul 07 #Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 #Python
Python通用验证码识别OCR库ddddocr的安装使用教程
Jul 07 #Python
You might like
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
PHP5.3以上版本安装ZendOptimizer扩展
2015/03/27 PHP
PHP中strpos、strstr和stripos、stristr函数分析
2016/06/11 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
顶部缓冲下拉菜单导航特效的JS代码
2013/08/27 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
JavaScript函数详解
2015/02/27 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
Python连接数据库学习之DB-API详解
2017/02/07 Python
基于Django的python验证码(实例讲解)
2017/10/23 Python
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
Python datetime模块的使用示例
2021/02/02 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
html5摇一摇代码优化包括DeviceMotionEvent等等
2014/09/01 HTML / CSS
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
优秀党员自我评价范文
2014/09/15 职场文书
求职推荐信范文
2015/03/27 职场文书
建国大业电影观后感
2015/06/01 职场文书
Flask response响应的具体使用
2021/07/15 Python
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python
Win11查看设备管理器
2022/04/19 数码科技