返回顶部
首页 > 资讯 > 后端开发 > Python >pytest实现多进程与多线程运行超好用的插件
  • 527
分享到

pytest实现多进程与多线程运行超好用的插件

2024-04-02 19:04:59 527人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录前言一、pytest-parallel二、pytest-xdist三、对比说明四、特别注意前言 如果想分布式执行用例,用例设计必须遵循以下原则: 1、用例之间都是独立的,2、用例

前言

如果想分布式执行用例,用例设计必须遵循以下原则:

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-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 多进程与多线程运行插件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: pytest实现多进程与多线程运行超好用的插件

本文链接: https://lsjlt.com/news/119365.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • pytest实现多进程与多线程运行超好用的插件
    目录前言一、pytest-parallel二、pytest-xdist三、对比说明四、特别注意前言 如果想分布式执行用例,用例设计必须遵循以下原则: 1、用例之间都是独立的,2、用例...
    99+
    2024-04-02
  • pytest多进程或多线程执行测试实例
    目录前言:分布式执行用例的原则:项目结构测试脚本多进程执行用例之pytest-xdistpytest-xdist分布式测试的原理:pytest-xdist分布式测试的流程:第一步:m...
    99+
    2024-04-02
  • Java多线程并发、并行、线程与进程实例分析
    本篇内容介绍了“Java多线程并发、并行、线程与进程实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、并发与并行并发:指两个或多个事...
    99+
    2023-07-02
  • JavaScript如何实现多线程运行库Nexus.js
    这篇文章主要为大家展示了“JavaScript如何实现多线程运行库Nexus.js”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何实现多线...
    99+
    2024-04-02
  • python多进程和多线程的实际用法
    这篇文章主要讲解了“python多进程和多线程的实际用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python多进程和多线程的实际用法”吧!  写在前面  总所周知,unix/linux...
    99+
    2023-06-02
  • python实现多线程post方法进行压
    #coding=utf-8 import httplib,urllib from time import ctime import threading import csv postJson={ } #定义需要...
    99+
    2023-01-31
    多线程 方法 python
  • 使用shell脚本怎么实现多进程运行
    这篇文章将为大家详细讲解有关使用shell脚本怎么实现多进程运行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。例子for ip in 192.168.56.{1...
    99+
    2023-06-09
  • Python 多线程与多进程:行业应用实例,探索并发编程的无限潜力
    1. 多线程:多任务同心协力,提升程序响应速度 多线程是一种并发编程模式,它允许程序在单个进程中同时执行多个任务。每个线程都可以独立运行,并与其他线程共享内存。多线程非常适合处理计算密集型任务,例如科学计算、图像处理和视频编码等。 实例...
    99+
    2024-02-24
    Python 多线程 多进程 并发编程 行业应用
  • Python多进程与多线程的使用场景有哪些
    这篇文章主要介绍Python多进程与多线程的使用场景有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言Python多进程适用的场景:计算密集型(CPU密集型)任务Python多线程适用的场景:IO密集型任务计算...
    99+
    2023-06-07
  • LINUX怎么实现多线程进行cp复制
    这篇文章主要为大家展示了“LINUX怎么实现多线程进行cp复制”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“LINUX怎么实现多线程进行cp复制”这篇文章吧。关于这个问题,意义虽然有限因为一般来...
    99+
    2023-06-04
  • shell脚本实现多进程运行的方法示例
    本文主要跟大家分享了shell脚本实现多进程运行的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 例子 for ip in 192.168.56.{1..254} do ( ping ...
    99+
    2022-06-04
    示例 脚本 进程
  • 什么是多线程?进程和线程的区别是什么?如何使用Java实现多线程?
    文章目录 前言我们为什么要使用线程而不是进程来实现并发编程什么是线程进程和线程的区别如何使用Java实现多线程创建线程1.创建一个继承 Thread 类的线程类2.实现 Runnable 接口匿名内部类方式实现 Runnable ...
    99+
    2023-08-19
    java JavaEE 多线程 进程
  • Python并行编程多线程锁机制Lock与RLock实现线程同步
    目录什么是锁机制?Lock() 管理线程RLock() 与Lock()的区别什么是锁机制? 要回答这个问题,我们需要知道为什么需要使用锁机制。前面我们谈到一个进程内的多个线程的某些资...
    99+
    2024-04-02
  • HTML5 Web Workers中如何进行网站多线程的实现
    今天就跟大家聊聊有关HTML5 Web Workers中如何进行网站多线程的实现,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Web Workers...
    99+
    2024-04-02
  • 如何在Python中实现多线程和多进程的实时接口和文件处理?
    在Python中,多线程和多进程是实现并行处理的两种方式。多线程和多进程的区别在于,多线程是在同一个进程中创建多个线程来并行执行任务,而多进程是在不同的进程中创建多个进程来并行执行任务。在本文中,我们将学习如何在Python中实现多线程和多...
    99+
    2023-08-20
    文件 实时 接口
  • R语言通过parallel包实现多线程运行方式
    总的来说,R的运算速度不算快,不过类似并行运算之类的改进可以提高运算的性能。下面非常简要地介绍如何利用R语言进行并行运算 library(parallel) cl.cores &...
    99+
    2024-04-02
  • c++中怎么实现一个对象运行多个线程
    在C++中,可以使用线程库来实现一个对象运行多个线程。下面是一个简单的示例: #include #include class ...
    99+
    2023-10-25
    c++
  • Python 多线程与多进程:实战案例剖析,掌握并发编程的应用技巧
    一、Python 多线程与多进程概述 1. 多线程 多线程是一种并发编程技术,允许一个程序同时执行多个任务。在Python中,可以使用 threading 模块来创建和管理线程。线程共享程序的内存空间,因此可以轻松地共享数据。但是,多线...
    99+
    2024-02-24
    Python 多线程 多进程 并发编程 实战案例
  • PHP底层的多进程编程与实现方法
    抱歉,我无法为您提供关于 PHP 底层的多进程编程与实现方法的文章,这是因为 PHP 并不是一个适合多进程编程的语言。PHP 是一种用于网页开发的服务器端脚本语言,主要用于处理动态网页内容,而不是用于编写多线程或多进程的系统编程。如果您对其...
    99+
    2023-11-08
    多进程编程 实现方法 PHP底层
  • java如何实现多线程的顺序执行
    场景 编写一个程序,启动三个线程,三个线程的name分别是A,B,C;,每个线程将自己的ID值在屏幕上打印5遍,打印顺序是ABCABC... 使用 synchronized 实现 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作