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 相关文章推荐
python3+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 Python
pycharm中连接mysql数据库的步骤详解
May 02 Python
python如何获取服务器硬件信息
May 11 Python
Python实现破解猜数游戏算法示例
Sep 25 Python
Python File readlines() 使用方法
Mar 19 Python
python 匹配url中是否存在IP地址的方法
Jun 04 Python
Python wxpython模块响应鼠标拖动事件操作示例
Aug 23 Python
Django的用户模块与权限系统的示例代码
Jul 24 Python
TensorFlow绘制loss/accuracy曲线的实例
Jan 21 Python
python实现滑雪者小游戏
Feb 22 Python
Keras之fit_generator与train_on_batch用法
Jun 17 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
Apr 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继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
ext监听事件方法[初级篇]
2008/04/27 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
jqTransform美化表单
2015/10/10 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
python简单读取大文件的方法
2016/07/01 Python
Python与R语言的简要对比
2017/11/14 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
python字典排序的方法
2019/10/12 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
Top Villas美国:豪华别墅出租和度假屋
2018/07/10 全球购物
教师党员思想汇报
2014/01/06 职场文书
社区敬老月活动实施方案
2014/02/17 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
幼儿学前班评语
2014/12/29 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
python 实现体质指数BMI计算
2021/05/26 Python
Python3 多线程(连接池)操作MySQL插入数据
2021/06/09 Python