Pytest 分组测试

article/2025/9/13 16:23:35

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

通过使用pytest.mark帮助程序,可以轻松地设置测试函数的元数据。可以在API参考中找到内置标记的完整列表。或者,您可以使用CLI-pytest-标记列出所有标记,包括内置标记和自定义标记。

以下是一些内置标记:

usefixtures-在测试函数或类上使用fixtures

filterwarnings-筛选测试函数的某些警告

skip-始终跳过测试函数

skipif-如果满足特定条件,则跳过测试函数

xfail-如果满足特定条件,则产生“预期失败”结果

parameterize-对同一测试函数执行多个调用。

创建自定义标记或将标记应用于整个测试类或模块都很容易。这些标记可以由插件使用,也通常用于通过-m选项在命令行上选择测试。

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

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

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

选择分组

-m + 分组标记如:

-m 'sit'

排除分组

m not + 分组,如:

-m 'not sit'

通过 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

标记测试功能并选择它们进行运行
可以将测试运行限制为仅运行标记为sit的测试

pytest -v -s -m  sit test_sample.py

输出结果:

  或者相反,运行除sit之外的所有测试:

 pytest -v -s -m "not sit" test_sample.py

输出结果: 

  选择一个分组和不选中另一个分组:

 pytest -v -s -m "sit and not uat" test_sample.py

输出结果如下:

 代码中使用自定义标记

import pytestclass TestPractise:@pytest.mark.sitdef test_sit(self):print('sit环境测试')@pytest.mark.uatdef test_uat(self):print('uat环境测试')if __name__ == "__main__":pytest.main(["-v", "-s", "-m sit and not uat"])

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

输出如下:

 

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

标记整个类或模块

import pytest
@pytest.mark.sit
class TestPractise:def test_sit(self):print('sit环境测试')def test_uat(self):print('uat环境测试')

这相当于将decorator直接应用于两个测试函数。要在模块级别应用标记,请使用pytestmark全局变量:

import pytest
pytestmark = pytest.mark.sit


或多个标记:

pytestmark = [pytest.mark.sit, pytest.mark.uat]

由于遗留的原因,在引入类装饰器之前,可以在测试类上设置pytestmark属性,如下所示:

import pytestclass TestClass:pytestmark = pytest.mark.sit

注意:

标记只能应用于测试,对fixture没有影响。
————————————————
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
借鉴与:https://blog.csdn.net/TalorSwfit20111208/article/details/131134921


http://chatgpt.dhexx.cn/article/JTFUp98w.shtml

相关文章

冒烟测试回归测试UATSIT

在软件研发中,冒烟测试其实是微软首先提出来的一个概念,和微软一直提倡的每日build(构建版本)有很密切的联系。具体说,冒烟测试就是在每日build(构建版本)建立后,对系统的基本功能进…

使用GIT提交代码流程

安装步骤:双击Git-2.27.0-64-bit.exe安装 双击TortoiseGit-2.10.0.2-64bit.msi安装 代码提交一般有五个步骤: 1.查看目前代码的修改状态 2.查看代码修改内容 3.暂存需要提交的文件 4.提交已暂存的文件 5.同步到服务器 登陆复制仓库的地址然后复制到下图的Directory…

Git提交代码的流程

企业级项目git远程仓库一般是由master/test/dev三个分支构成,开发人员是在dev上做开发,当需要发布测试环境或者生产环境时管理员会把开发人员提交的代码合并到test或者master上。 开发人员git操作步骤: 1.git clone 把远程dev上的代码克隆到本…

傻瓜式Git提交代码流程【写给初学者】

前言 Git是程序员工作中最最常用的分布式版本控制系统,为的就是解决那种多人协作、多次修改的问题,虽说Git可以应用于各行各业,但是实际上还是程序员用的最多了,应该说是程序员的必备技能之一了,如果你还不会Git&…

vs2019中git提交代码的步骤

目录 前言 一、在vs2019的git界面提交代码 二、使用git命令行提交代码 总结 前言 在vs2019中使用git提交代码的步骤和一些常见问题。 一、在vs2019的git界面提交代码 1.切换到需要提交代码的分支上,首先更新分支。 vs2019工具栏选择Git,点击更新。 2.…

IDEA使用git提交代码

1.将鼠标移动到需要提交的代码文件上;2.右键文件夹,找到Git选项;3.进入选项中的Repository;4.然后点击push就可以将暂存的代码提交到 Git 服务器上。

在Idea用Git提交代码

前提是安装了Git 1、右键选择如下: 2、选择提交前文件、描述提交信息、提交到本地仓库,操作如下: 3、确定是否提交 4、推送远程仓库,右键选择如下:

idea上git提交代码的正确步骤

IDEA中项目集成git提交代码详细步骤 一:pull代码 在提交代码之前,我们必须先对代码就行更新操作,这一步非常重要,如果不进行更新代码操作,当有其他小伙伴有更改的内容已经提交到代码仓库但是我们本地缺没有更新的话&…

idea中使用git提交代码步骤

目录 一、先更新代码二、更新代码后的2种情况三、代码添加到本地仓库四、代码提交到缓冲区五、代码提交到远程git仓库 lz部分截图参考此链接https://blog.csdn.net/u013452337/article/details/79956604 一、先更新代码 1、在提交项目之前必须先对项目进行更新(一定…

Git命令提交代码步骤

1.初始化:创建一个git仓库,创建之后就会在当前目录生成一个.git的文件 git init2.添加文件:把文件添加到缓冲区 git add filename3.添加所有文件到缓冲区(从目前掌握的水平看,和后面加“.”的区别在于,加…

idea git提交代码

0、新工程如何加入git管理 复制.gitignore文件进工程根目录 .gitignore文件内容为: HELP.md target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ !**/src/test/**/target/### STS ### .apt_generated .classpath .factorypath .project .settings…

Git 提交代码步骤总结

第一步:拉取远程代码,更新本地代码,避免覆盖其他人的代码 指令:git pull (拉取远程master分支的代码) 截图: 指令: git pull origin cas (拉取远程cas分支的代码) 截图: 第二步:查看当前项目…

Git 提交代码步骤

第一步: 提交代码第一步:git status 查看当前状态 当你忘记修改了哪些文件的时候可以使用 git status 来查看当前状态, 红色的字体显示的就是你修改的文件。 第二步: 提交代码第二步:git add . 或者 git add xxx 如图1、如…

git提交代码的两种方法步骤

文章目录 一、Git Bash提交方式1.首次提交,先输入github/gitlab等的用户名和邮箱2.将路径改为需要提交的项目路径3.查看上次提交之后的是否有修改文件4.将修改文件存入暂存区5.提交修改文件6.拉取远程与本地合并7.推送本地到远程合并 二、VScode提交方式1.将文件存入…

git实验之代码提交

代码提交 代码提交一般有五个步骤: 1.查看目前代码的修改状态 2.查看代码修改内容 3.暂存需要提交的文件 4.提交已暂存的文件 5.同步到服务器 1. 查看目前代码的修改状态 提交代码之前,首先应该检查目前所做的修改,运行git status命令 a…

Git提交代码步骤

目录 1.Git提交代码步骤 1.1 第1步:同步远程仓库代码:git pull 1.2 第1步:查看当前状态:git status 1.3 第2步:提交代码到本地git缓存区:git add 1.4 第3步:推送代码到本地git库:git…

安卓手机备份_应用备份和还原,一个好用安卓手机工具APP

Hello,大扎好。今天我来和大家分享一个一直以来我在使用的手机工具APP,它的功能简单来说就是备份和还原手机上的个人APP和通讯录。优点是备份速度快、APP是备份为.apk的安卓手机安装文件,恢复的时候可以设置为自动恢复,完全不用认…

几款安卓人气手机数据备份软件体验

据相关数据调查机构最新研究报告称,截止2018年底,中国智能手机用户数量已经突破10亿,位居全球第一,与此同时,相当一部分用户需要手机数据备份的需求,小编为此搜集体验了在应用商店中下载量靠前的一些手机数…

android备份能看到什么意思,安卓手机数据备份与恢复软件有哪些?看完你就知道哪个适合你了...

原标题:安卓手机数据备份与恢复软件有哪些?看完你就知道哪个适合你了 2018已经快过去两周了,这两周感受较深的就是人们的隐私保护意识增强了不少。从微信事件、支付宝事件再到近日的iCloud事件都可以体现出来,知道为自己的手机隐私…

電腦android备份软件,可以使用什么软件备份Android手机系统,类似于将当前系统备份到计算机上的GHO?...

全部展开 备份Android软件: 1,QQ同步助手: 用于更换新机器,,SMS,通话记录,一键备份/还原,节省时间,精力和数据的软件,Android和Apple都可以使用此软件. 2,iCloud: Apple自…