Pytest 分组测试

news2024/11/28 4:34:30

有时候需要针对不同的测试环境跑不同的测试用例,如:冒烟测试、sit、uat、prd,所以给自动化测试用例做标记分组是很有必要的,pytest.mark 可以轻松实现这个功能。首先需要注册自定义标记。

注册marks

有3中方法注册marks,第一种事在pytest.ini文件

通过pytest.ini文件注册自定义标记

如下:

[pytest]
markers =
    sit: 标记测试为sit (deselect with '-m "not sit"')
    uat: 标记测试为uat
    prd: 标记测试为prd 
    serial

通过 pyproject.toml文件注册自定义标记

[tool.pytest.ini_options]
markers = [
    "sit: 标记测试为sit (deselect with '-m \"not sit\"')",
    "serial",
]

注意标记名:后面的为可选的标记描述

通过pytest_configure hook动态注册标记

def pytest_configure(config):
    config.addinivalue_line(
        "markers", "env(name): mark test to run only on named environment"
    )

给未知标记抛出异常

使用@pytest.mark.name_of_the_mark装饰器应用的未注册标记将始终发出警告,以避免由于键入错误的名称而导致的意外行为。可以通过在pytest.ini文件中注册自定义标记或使用自定义pytest_configure钩子来禁用自定义标记的警告。

当传递--strict marks命令行标志时,使用@pytest.mark.name_of_the_mark装饰器应用的任何未知标记都将触发错误。您可以在项目中通过向addopts添加--strict标记来强制执行此验证:

[pytest]
addopts = --strict-markers
markers =
    slow: marks tests as slow (deselect with '-m "not slow"')
    serial

使用自定义标记

import pytest


class TestPractise:

    @pytest.mark.sit
    def test_sit(self):
        print('sit环境测试')

    @pytest.mark.uat
    def test_uat(self):
        print('uat环境测试')


if __name__ == "__main__":
    pytest.main(["-v", "-s", "-m sit and not uat"])

以上测试选择sit标记的测试,不选中uat标记的测试

输出如下:

 从图片看出运行结果与期望一致~

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

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

相关文章

【Apache Pinot】浅析 Pinot 的 Table,Index 和 Tenant 原理

本文属于基础篇幅,不会涉及过深入的原理,主要还是如何用好 Pinot 背景 单独讲 Table 概念可能有些许单薄,本文会扩展场景,讲解表的部分原理,表与表之间的相互影响,租户是怎么作用到表的,增加字…

一位年薪35W的测试被开除,回怼的一番话,令人沉思

一位年薪35W测试工程师被开除回怼道:“反正我有技术,在哪不一样” 一技傍身,万事不愁,当我们掌握了一技之长后,在职场上说话就硬气了许多,不用担心被炒,反过来还可以炒了老板,这一点…

基于深度学习的高精度袋鼠检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度袋鼠检测识别系统可用于日常生活中或野外来检测与定位袋鼠目标,利用深度学习算法可实现图片、视频、摄像头等方式的袋鼠目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

活跃主机发现技术指南

活跃主机发现技术指南 1.活跃主机发现技术简介2.基于ARP协议的活跃主机发现技术3.基于ICMP协议的活跃主机发现技术4.基于TCP协议的活跃主机发现技术5.基于UDP协议的活跃主机发现技术6.基于SCTP协议的活跃主机发现技术7.主机发现技术的分析 1.活跃主机发现技术简介 在生活中有这…

继电保护名词解释三

第三章:电网的相间电流、电压保护和方向性相间电流、电压保护 1. 瞬时电流速断保护:对于仅反应于电流增大而瞬时动作的电流保护。 2. 保护装置的起动电流:能够使保护装置起动的最小电流值。 3. 系统最大运行方式:通过保护装置的…

了解服务级别协议(SLA)在 ITSM 中的重要性

什么是服务级别协议 根据ITIL 4,SLA是服务提供商和客户之间的书面协议,用于确定所需的服务和预期的服务水平。这些协议可以是正式的,也可以是非正式的。 在 ITSM 的上下文中,SLA 有助于设置和管理最终用户在提出请求时的期望 或…

如何导出Axure原型设计中的图片?零基础入门教程

Axure 是一款广为人知的原型设计工具,特别适用于新手产品经理或产品设计初学者。然而,如果用户想要在浏览器中预览 Axure 原型图,需要安装插件才能实现。而安装完 Axure RP Chrome 插件后,还需要在扩展程序中选择 "允许访问文…

类和对象【5】日期类的实现

全文目录 引言实现日期类概述默认成员函数构造函数析构函数拷贝构造赋值重载 功能运算符重载日期间的比较日期与天数日期-与-天数日期前置与后置日期前置- -与后置- -日期 - 日期 输入输出重载(友元) 代码总览头文件源文件main函数 总结 引言 类和对象1…

详解Java异常和异常面试题(上)

1.异常的体系结构 2.从程序执行过程,看编译时异常和运行时异常 编译时异常:执行javac.exe命名时,可能出现的异常 运行时异常:执行java.exe命名时,出现的异常 1.运行时异常  是指编译器不要求强制处置的异常。一般是…

网络安全:信息收集专总结【社会工程学】

前言 俗话说“渗透的本质也就是信息收集”,信息收集的深度,直接关系到渗透测试的成败,打好信息收集这一基础可以让测试者选择合适和准确的渗透测试攻击方式,缩短渗透测试的时间。 一、思维导图 二、GoogleHacking 1、介绍 利用…

HVV常问的Web漏洞(护网蓝初面试干货)

目录 1、SQL注入 (1)原理 (2)分类 (3)防御 2、XSS (1)原理 (2)分类 3、中间件(解析漏洞) (1)IIS6.X …

【AI实战】开源大语言模型LLMs汇总

【AI实战】开源大语言模型LLM汇总 大语言模型开源大语言模型1、LLaMA2、ChatGLM - 6B3、Alpaca4、PandaLLM5、GTP4ALL6、DoctorGLM (MedicalGPT-zh v2)7、MedicalGPT-zh v18、Cornucopia-LLaMA-Fin-Chinese9、minGPT10、InstructGLM11、FastChat12、Luot…

在线原型设计工具推荐

原型设计是每个产品经理必备的基本技能。 本文从即时设计原型设计的步骤开始,帮助您快速使用即时设计制作高还原度、丰富互动的产品原型。 利用即时设计进行原型设计的优势 快速启动原型设计工作 借助即时设计内置设计系统和社区资源,包括大量原型设…

Hive执行计划之什么是hiveSQL向量化模式及优化详解

目录 文章目录 1.什么是hive向量化模式2.Hive向量化模式支持的使用场景2.1 hive向量化模式使用前置条件2.2 向量模式支持的数据类型2.3 向量化模式支持的函数 3.如何查看hiveSQL向量化运行信息3.1 explain vectorization only只查询向量化描述信息内容3.2 explain vectorizati…

javaScript蓝桥杯---JSON 生成器

目录 一、介绍二、准备三、目标四、代码五、完成 一、介绍 JSON 已经是大家必须掌握的知识点,JSON 数据格式为前后端通信带来了很大的便利。在开发中,前端开发工程师可以借助于 JSON 生成器快速构建一个 JSON 用来模拟数据。 本题请你开发一个简易的 J…

chatgpt赋能python:Python快速安装库

Python快速安装库 Python作为一种功能强大且易于学习的编程语言,已经成为许多开发人员的首选。在Python中,库是重要的一部分,它们提供了各种功能和工具来简化开发过程。安装这些库的过程可能会比较繁琐,但我们可以通过一些简单的…

PHP的学习--Traits新特性

自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。 Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集。Traits 和类组合的…

博客系统测试用例设计之自动化测试

测试用例设计之自动化测试 🌷 一 测试用例设计🌺 1 功能测试🌸 (1)登录功能🌸 (2)列表页功能🌸 (3)编辑博客功能🌸 (4&…

大厂设计师都在用的9个灵感工具

每一件伟大的设计作品都离不开设计师灵感的爆发。设计师有很多灵感来源,比如精美的摄影图片、酷炫的网站设计、APP的特色功能、友好的用户体验动画,或者一篇文章。 设计师每天都需要收集灵感,把灵感收集当成日常生活。在这篇文章中&#xff…

自动化测试工具比较:Selenium vs. Cypress

简介 Selenium是一个广泛应用的测试自动化工具,支持多种编程语言和浏览器。它使用WebDriver协议与浏览器进行通信,可以模拟用户在浏览器中的交互行为。Cypress是一个相对较新的测试自动化工具,它专注于现代Web应用程序的测试,并提…