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 相关文章推荐
rhythmbox中文名乱码问题解决方法
Sep 06 Python
Python实现二叉堆
Feb 03 Python
python不换行之end=与逗号的意思及用途
Nov 21 Python
python如何读写json数据
Mar 21 Python
Python常用特殊方法实例总结
Mar 22 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
python3.6根据m3u8下载mp4视频
Jun 17 Python
python set内置函数的具体使用
Jul 02 Python
python的sys.path模块路径添加方式
Mar 09 Python
Python函数参数分类原理详解
May 28 Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 Python
python使用torch随机初始化参数
Mar 22 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
日本十大惊悚动漫
2020/03/04 日漫
微信公众平台开发之天气预报功能
2015/08/31 PHP
基于php判断客户端类型
2016/10/14 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
BOM与DOM的区别分析
2010/10/26 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
vue实现tab栏点击高亮效果
2020/08/19 Javascript
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
Python基于Matplotlib库简单绘制折线图的方法示例
2017/08/14 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
Pytorch 之修改Tensor部分值方式
2019/12/27 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
比利时买床:Beter Bed
2017/12/06 全球购物
新教师工作感言
2014/02/16 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
小学教师个人总结
2015/02/05 职场文书
2015年加油站工作总结
2015/05/13 职场文书
python基于机器学习预测股票交易信号
2021/05/25 Python