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之list和str比较
Sep 20 Python
酷! 程序员用Python带你玩转冲顶大会
Jan 17 Python
TensorFlow深度学习之卷积神经网络CNN
Mar 09 Python
用TensorFlow实现lasso回归和岭回归算法的示例
May 02 Python
python 2.7 检测一个网页是否能正常访问的方法
Dec 26 Python
python如何给字典的键对应的值为字典项的字典赋值
Jul 05 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
flask框架url与重定向操作实例详解
Jan 25 Python
基于python实现检索标记敏感词并输出
May 07 Python
keras.utils.to_categorical和one hot格式解析
Jul 02 Python
matplotlib subplot绘制多个子图的方法示例
Jul 28 Python
python上下文管理的使用场景实例讲解
Mar 03 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实现telnet功能示例
2014/04/08 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
JavaScript 学习笔记(五)
2009/12/31 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
基于jQuery实现的文字按钮表单特效整理
2014/12/07 Javascript
JavaScript判断数组是否包含指定元素的方法
2015/07/01 Javascript
Jquery 效果使用详解
2015/11/23 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
2016/11/22 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
jQuery操作动画完整实例分析
2020/01/10 jQuery
js实现简单点赞操作
2020/03/17 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
2018/12/11 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
Bloomingdale’s阿联酋:选购奢华时尚、美容及更多
2020/09/22 全球购物
如何利用cmp命令比较文件
2016/04/11 面试题
理工科学生的自我评价
2013/12/15 职场文书
挂靠协议书范本
2014/04/22 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
汽车车尾标语大全
2015/08/11 职场文书
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python