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 相关文章推荐
使用Python获取Linux系统的各种信息
Jul 10 Python
解析Python中while true的使用
Oct 13 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
Python装饰器知识点补充
May 28 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 Python
计算机二级python学习教程(2) python语言基本语法元素
May 16 Python
python 实现在一张图中绘制一个小的子图方法
Jul 07 Python
python 环境搭建 及python-3.4.4的下载和安装过程
Jul 20 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
浅谈keras使用中val_acc和acc值不同步的思考
Jun 18 Python
python实现的人脸识别打卡系统
May 08 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
mysql中存储过程、函数的一些问题
2007/02/14 PHP
php array_slice函数的使用以及参数详解
2008/08/30 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
第二章 PHP入门基础之php代码写法
2011/12/30 PHP
PHP在不同页面间传递Json数据示例代码
2013/06/08 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
Zend Framework连接Mysql数据库实例分析
2016/03/19 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
Array 重排序方法和操作方法的简单实例
2014/01/24 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
10款最好的Web开发的 Python 框架
2015/03/18 Python
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
python实现月食效果实例代码
2019/06/18 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
python3.7 openpyxl 删除指定一列或者一行的代码
2019/10/08 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
Python调用飞书发送消息的示例
2020/11/10 Python
HTML5有哪些新特征
2015/12/01 HTML / CSS
思想政治教育专业个人求职信范文
2013/12/20 职场文书
班组长工作职责
2013/12/25 职场文书
大学生素质拓展活动方案
2014/02/11 职场文书
网络信息安全承诺书
2014/03/26 职场文书
微笑服务演讲稿
2014/05/13 职场文书
感谢信范文大全
2015/01/23 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书