Pytest用例自定义 - 重复、并行、串行

简介:面对快速迭代和持续交付的需求,提高测试效率变得至关重要。并行测试因其显著的时间节省优势而备受青睐。然而,并非所有测试都适合并行执行。在某些情况下,串行执行是必要的,以确保测试的正确性和稳定性。本文将探讨在自动化测试中部分串行、部分并行执行的必要性和实践方法,帮助测试开发者在提高测试效率的同时,确保测试结果的可靠性和准确性。

历史攻略:

pytest运行结果解析及其改造

pytest+allure安装和使用

pytest:并行和并发运行用例

python:消息推送 - 企业微信机器人推送

让你的pytest日志更有序:配置和使用技巧

Python配置与测试利器:Hydra + pytest的完美结合

Playwright - 04:pytest并行、并发、运行浏览器兼容性测试

安装:

pip install pytest-xdist
pip install pytest-repeat

使用案例:main.py

# -*- coding: utf-8 -*-
# time: 2024/03/24 10:30
# file: main.py
# 公众号: 玩转测试开发
import os
import pytestif __name__ == "__main__":# step-1:use pytest run test_casepytest.main(["-s", "test_case", '-n', 'auto', "--alluredir", "./report"])# step-2:auto report json data,zip to allure-htmlos.system("allure serve report")

test_case/test_demo.py

# -*- coding: utf-8 -*-
# time: 2024/3/22 0:34
# file: test_demo.py
# 公众号: 玩转测试开发
import time
import unittestclass TestDemo(unittest.TestCase):def test_01(self):time.sleep(5)print('测试用例1执行')def test_02(self):time.sleep(5)print('测试用例2执行')def test_03(self):time.sleep(5)print('测试用例3执行')

test_case/test_parallel.py

# -*- coding: utf-8 -*-
# time: 2024/3/24 12:16
# file: test_parallel.py
# 公众号: 玩转测试开发
import time
import pytestclass TestParallel:@pytest.mark.repeat(2)def test_parallel_1(self):time.sleep(5)print("Parallel Test 1")@pytest.mark.repeat(3)def test_parallel_2(self):time.sleep(5)print("Parallel Test 2")@pytest.mark.repeat(1)def test_parallel_3(self):time.sleep(5)print("Parallel Test 3")@pytest.mark.repeat(3)def test_parallel_4(self):time.sleep(5)print("Parallel Test 4")

test_case/test_serial.py

# -*- coding: utf-8 -*-
# time: 2024/3/24 12:16
# file: test_serial.py
# 公众号: 玩转测试开发
import time
import pytest@pytest.mark.serial
class TestSerial:def test_serial_1(self):time.sleep(5)print("Serial Test 1")def test_serial_2(self):time.sleep(5)print("Serial Test 2")

配置文件:pytest.ini

# pytest.ini
[pytest]
markers =serial: mark test to run serially

运行结果:

图片

图片

注意事项:

1、同一文件中混合串行和并行测试,并且需要更精细的控制,可能需要编写更复杂的自定义逻辑或查找是否有现成的插件能满足这种特定的需求。

2、不关心执行顺序,简单地将 -n 参数设置为 auto,让 pytest-xdist 插件自动管理并行执行,通常是最简单也是最有效的方法。

结论:适当拆分错开并行和串行的测试类,通过pytest-xdist auto参数,可以便捷有效的大幅度提升运行测试用例的效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/3896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS 鸿蒙下载三方依赖 ohpm环境搭建

前言 ohpm(One Hundred Percent Mermaid )是一个集成了Mermaid的命令工具,可以用于生成关系图、序列图、等各种图表。我们可以使用ohpm来生成漂亮且可读性强的图表。 本期教大家如何搭建ophm环境: 一、在DevEco Studio中&#…

c++图论基础(2)

目录 图的存储方式: 邻接矩阵: 代码实现: 邻接表: 代码实现: 邻接矩阵邻接表对比: 带权图: 邻接矩阵存储: 邻接表存储(代码实现): 图的存储方式: 邻…

【数据结构】合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 Definition for singly-linked list.struct ListNode {int val;struct ListNode *next;};typedef struct ListNode ListNode; struct ListNode* mergeTwoLists(struct Lis…

【网络安全】对称加密、非对称加密以及密钥分配

目录 1、对称加密 2、非对称加密 3、如何分配对称密钥? 4、如何分配非对称密钥? 1、对称加密 所谓对称加密,就是指加密密钥与解密密钥都使用相同的密钥。如下图所示,通信双方使用的就是对称加密密钥。//代表:DES和…

《DiffusionNER: Boundary Diffusion for Named Entity Recognition》

Submitted 22 May, 2023; originally announced May 2023. Comments: Accepted to ACL 2023, submission version https://github.com/tricktreat/DiffusionNER 在这里插入图片描述 问题: 命名实体识别任务中存在的噪声跨度(边界不清晰&#xff09…

人工智能如何提高公司效率的 5 种方法

人工智能是当今最热门的话题之一,但并不是每个人都了解其对商业的价值规模。由此可见,现有的AI技术可以将企业的生产力提升40%。 在机器学习的帮助下,Netflix 利用自动化个性化推荐每年赚取 10 亿美元。当公司使用人工智能时,34%…

【QA】Git的底层原理

前言 本文通过一个简单的示例,来理解Git的底层原理。 示例 1、新建本地仓库并上传第一个文件 相关步骤: 新建仓库及创建文件查看文件状态将文件添加到暂存区将文件提交到本地仓库 HMTeenLAPTOP-46U4TV6K MINGW64 /d/GSF_Data/Github/Java/Git/git-…

【C语言】每日一题,快速提升(6)!

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 题目: 矩阵转置 有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵) 示例: 输…

深入了解Semaphore、CountDownLatch等实用工具的用法

哈喽,各位小伙伴们,你们好呀,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后…

JRT质控打印

最近客户端打磨完了,又来推进质控了。之前演示的打印都是Demo示例,这次真正的写质控图的打印,数据就是质控数据录入界面录入的数据。其中质控图打印应该算最复杂的类型了。涉及JS的绘图,打印表格等,表格比较简单、还没…

端点安全管理系统干什么用的 有哪些好用?

你听说过: 端点安全管理系统吗? 我们一起来了解一下啊 一、什么是端点安全管理系统? 端点安全管理系统(Endpoint Security Management System)是一种专门用于保护企业内部网络终端设备的综合性安全解决方案。 这些终…

全国省级金融发展水平数据集(2000-2022年)

01、数据简介 金融发展水平是一个国家或地区经济实力和国际竞争力的重要体现。它反映了金融体系的成熟程度和发展水平,是衡量一个国家或地区经济发展质量的重要指标。金融发展水平的提高,意味着金融体系能够更好地服务实体经济,推动经济增长…

Servlet(写一个Hello Worldt)【一】

文章目录 一、Servlet 目的 ----- 实现动态页面二、编写一个 Servlet 的Hello World2.1 创建项目2.2 处理文件夹2.3 引入依赖2.4 手动创建一些必要的目录/文件2.5 编写代码2.6 打包程序2.7 部署2.8 验证程序是否能正常工作 一、Servlet 目的 ----- 实现动态页面 静态页面 VS 动…

安卓免费抠图、AI绘图、修图软件——SnapEdit

一、前言 AI绘图原理主要基于深度学习和神经网络技术,通过训练数据集中的图像,从中学习并提取特征,进而生成新的图像。这一过程涉及到多种技术和模型,包括但不限于VAE(变分自编码器)、auto-encoder、GAN&a…

后端工程师——C++工程师如何准备面试?

相比 Java 语言方向,C++ 入门简单,精通难,找工作竞争压力更小,但 C++ 依然是近年来招聘的热门岗位之一。本文将从以下三个方面进行详细讲解,帮助你对 C++ 相关岗位的就业前景、岗位要求、学习路线等有更充分的了解。 C++工程师面试准备 上两篇文章对 C++ 工程师的招聘需求…

2024年世界排名TOP250医院榜单发布|医学访学/博后/联培博士参考

作为医学类的访问学者、博士后及联合培养博士们,都希望到世界知名医院进行临床研修交流及科研学习。2024年世界最佳医院排行榜的发布为申请者提供了可选目标,现知识人网小编整理刊出。 近日,美国《新闻周刊》(Newsweek&#xff09…

To String的几个作用

To String的几个作用 一、Object类中toString的作用 1、在主方法中我们可以直接用toString输出对象其中的内容 2、我们需要直接输出对象中所属内容时,直接使用toString方法输出语句,输出内容不友好,不便于阅读 子类: public c…

Linux 进程管理快捷键 ctrl+z、ctrl+c、ctrl+\、ctrl+d介绍

在Linux系统中,可以使用一些特定的键盘快捷键来管理后台进程和控制终端的行为。下面是对这些快捷键的介绍: 1 CtrlZ(挂起): 在终端中运行程序时,你可以使用CtrlZ来将其挂起,即将其移动到后台并…

Pytorch:张量的梯度计算

目录 一、自动微分简单介绍1、基本原理2、梯度计算过程3、示例:基于 PyTorch 的自动微分a.示例详解b.梯度计算过程c.可视化计算图 4、总结 二、为什么要计算损失,为何权重更新是对的?1、梯度下降数学原理2、梯度上升 三、在模型中使用自动微分…

【U+】U+智享版运维平台账号密码重置

【问题描述】 友加畅捷系列中的U智享版软件, 系统运维平台账号admin密码忘记了,无法登录。 【解决方法】 在软件的安装目录下,找到sysconfig_accounts文件,并删除。 【路径:X:\U系列软件\U智享版\WebSite\config\】 …