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的正则表达式re模块的常用方法
Mar 09 Python
python计算N天之后日期的方法
Mar 31 Python
python轻松查到删除自己的微信好友
Jan 10 Python
Python md5与sha1加密算法用法分析
Jul 14 Python
python数据类型判断type与isinstance的区别实例解析
Oct 31 Python
浅析Python装饰器以及装饰器模式
May 28 Python
Python实现绘制双柱状图并显示数值功能示例
Jun 23 Python
使用Python进行目录的对比方法
Nov 01 Python
python代码实现逻辑回归logistic原理
Aug 07 Python
OpenCV灰度化之后图片为绿色的解决
Dec 01 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 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
PHP的面试题集
2006/11/19 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
javascript中的事件代理初探
2014/03/08 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
基于zepto.js简单实现上传图片
2016/06/21 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
2020/03/05 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
python实现无证书加密解密实例
2014/10/27 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
Django之腾讯云短信的实现
2020/06/12 Python
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
优衣库澳大利亚官网:UNIQLO澳大利亚
2017/01/18 全球购物
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
单位绩效考核方案
2014/05/11 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
Python编写nmap扫描工具
2021/07/21 Python
Oracle中日期的使用方法实例
2022/07/07 Oracle
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS