46-pytest-分布式插件pytest-xdist使用

简介: 46-pytest-分布式插件pytest-xdist使用

前言

  • 本篇来学习下在pytest中分布式执行测试用例,以节省测试时间。

安装插件

pip install pytest-xdist

分布式用例设计原则

  • 用例之间是独立的,用例之间没有依赖关系,用例可以完全独立运行【独立运行】
  • 用例执行没有顺序,随机顺序都能正常执行【随机执行】
  • 每个用例都能重复运行,运行结果不会影响其他用例【不影响其他用例】

使用示例

  • 顺序执行
# -*- coding: utf-8 -*-
# @Time    : 2022/11/26
# @Author  : 大海
import time
import pytest
def test_01():
    print('case 1')
    time.sleep(2)
    assert 1 == 1
def test_02():
    print('case 2')
    time.sleep(2)
    assert 1 == 1
def test_03():
    print('case 3')
    time.sleep(2)
    assert 1 == 1
def test_04():
    print('case 4')
    time.sleep(2)
    assert 1 == 1
def test_05():
    print('case 5')
    time.sleep(2)
    assert 1 == 1
if __name__ == '__main__':
    # 顺序执行
    pytest.main(['-s', 'test_78.py'])

  • 并行执行:加-n参数后面数字是并行数
# -*- coding: utf-8 -*-
# @Time    : 2022/11/26
# @Author  : 大海
import time
import pytest
def test_01():
    print('case 1')
    time.sleep(2)
    assert 1 == 1
def test_02():
    print('case 2')
    time.sleep(2)
    assert 1 == 1
def test_03():
    print('case 3')
    time.sleep(2)
    assert 1 == 1
def test_04():
    print('case 4')
    time.sleep(2)
    assert 1 == 1
def test_05():
    print('case 5')
    time.sleep(2)
    assert 1 == 1
if __name__ == '__main__':
    # 并行执行 加-n参数后面数字是并行数
    pytest.main(['-s', 'test_78.py', '-n=4', '--html=report.html', '--self-contained-html'])

测试报告

按一定顺序执行

  • pytest-xdist默认是无序执行的,可以通过 --dist 参数来控制顺序
  • –dist=loadscope

将按照同一个模块module下的函数和同一个测试类class下的方法来分组,然后将每个测试组发给可以执行的worker,确保同一个组的测试用例在同一个进程中执行

  • –dist=loadfile

按照同一个文件名来分组,然后将每个测试组发给可以执行的worker,确保同一个组的测试用例在同一个进程中执行

相关文章
|
消息中间件 存储 负载均衡
分布式消息传递新时代:深入了解RabbitMQ_sharding插件的精髓【RabbitMQ 八】
分布式消息传递新时代:深入了解RabbitMQ_sharding插件的精髓【RabbitMQ 八】
418 0
|
测试技术 Python
Pytest系列(16)- 分布式测试插件之pytest-xdist的详细使用
Pytest系列(16)- 分布式测试插件之pytest-xdist的详细使用
931 0
|
安全 测试技术 索引
Pytest系列(17)- pytest-xdist分布式测试的原理和流程
Pytest系列(17)- pytest-xdist分布式测试的原理和流程
673 0
|
负载均衡 监控 测试技术
pytest学习和使用20-pytest如何进行分布式测试?(pytest-xdist)
pytest学习和使用20-pytest如何进行分布式测试?(pytest-xdist)
445 0
pytest学习和使用20-pytest如何进行分布式测试?(pytest-xdist)
|
测试技术 数据库
【pytest】case多执行慢?pytest-xdist分布式测试,了解一下
【pytest】case多执行慢?pytest-xdist分布式测试,了解一下
【pytest】case多执行慢?pytest-xdist分布式测试,了解一下
|
缓存 测试技术
Pytest系列(30)- 使用 pytest-xdist 分布式插件,如何保证 scope=session 的 fixture 在多进程运行情况下仍然能只运行一次
Pytest系列(30)- 使用 pytest-xdist 分布式插件,如何保证 scope=session 的 fixture 在多进程运行情况下仍然能只运行一次
564 0
Pytest系列(30)- 使用 pytest-xdist 分布式插件,如何保证 scope=session 的 fixture 在多进程运行情况下仍然能只运行一次
|
6月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
469 2
|
6月前
|
存储 缓存 NoSQL
【📕分布式锁通关指南 12】源码剖析redisson如何利用Redis数据结构实现Semaphore和CountDownLatch
本文解析 Redisson 如何通过 Redis 实现分布式信号量(RSemaphore)与倒数闩(RCountDownLatch),利用 Lua 脚本与原子操作保障分布式环境下的同步控制,帮助开发者更好地理解其原理与应用。
419 6
|
7月前
|
存储 缓存 NoSQL
Redis核心数据结构与分布式锁实现详解
Redis 是高性能键值数据库,支持多种数据结构,如字符串、列表、集合、哈希、有序集合等,广泛用于缓存、消息队列和实时数据处理。本文详解其核心数据结构及分布式锁实现,帮助开发者提升系统性能与并发控制能力。
|
11月前
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
1221 0
分布式爬虫框架Scrapy-Redis实战指南

热门文章

最新文章