Pytest自动化测试框架:mark用法---测试用例分组执行

news2024/12/23 14:29:44

pytest中的mark:

  mark主要用于在测试用例/测试类中给用例打标记(只能使用已注册的标记名),实现测试分组功能,并能和其它插件配合设置测试方法执行顺序等。

如下图,现在需要只执行红色部分的测试方法,其它方法不执行:

设置步骤如下:

1、注册标签名,通过pytest.ini配置文件注册;
2、在测试用例的前面加上:@pytest.mark.已注册标签名
3、运行时,根据用例标签过滤(-m标签名)


通过mark分组执行的用例:

1、在项目下新建一个pytest.ini的配置文件;如下图:

 2、在用例里面添加@pytest.mark.标签名;如下代码:

代码示例:

test_demo_mark_01.py文件

import pytest

class TestDemo01:

    def test_case_01(self):
        print('exec TestDemo01 test_case_01',end=' ')
        assert True
    @pytest.mark.system_test
    def test_case_02(self):
        print('exec TestDemo01 test_case_02',end=' ')
        assert True

test_demo_mark_02.py文件

import pytest

class TestDemo02:
    @pytest.mark.login_module
    @pytest.mark.system_test
    def test_case_01(self):
        print('exec TestDemo02 test_case_01',end=' ')
        assert True

    def test_case_02(self):
        print('exec TestDemo02 test_case_02',end=' ')
        assert True

test_demo_mark_03.py文件

import pytest

class TestDemo03:
    @pytest.mark.smoke_test
    @pytest.mark.login_module
    def test_case_01(self):
        print('exec TestDemo03 test_case_01',end=' ')
        assert True

    def test_case_02(self):
        print('exec TestDemo03 test_case_02',end=' ')
        assert True

3、在run_case.py文件中执行pytest.main(['-s','-v','-m 标签名')

代码示例:

import pytest

pytest.main(['-s','-v','-m smoke_test'])                    # 只执行smoke_test分组下的用例
# pytest.main(['-s','-v','-m system_test or login_module'])   # 两个标签的用例都执行
# pytest.main(['-s','-v','-m system_test and login_module'])  # 包含两个标签的用例才执行
# pytest.main(['-s','-v','-m not login_module'])                # 除了该标签之外,其他用例都执行

执行效果:

这可能是B站最详细的pytest自动化测试框架教程,整整100小时,全程实战!!!

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

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

相关文章

中间件安全: Apache 远程代码执行 (CVE-2021-42013)

中间件安全: Apache 远程代码执行 (CVE-2021-42013) Apache HTTP Server是美国阿帕奇(Apache)基金会的一款开源网页服务器。该服务器具有快速、可靠且可通过简单的API进行扩充的特点,发现 Apache HTTP Ser…

EEPROM与Flash的区别

EEPROM与Flash的区别 EEPROMEEPROM内部功能框图实现写入数据内部结构存储管在充电或放电状态下有着不同的阈值电压 问题点EEPROM是如何失效的呢?为何EEPROM不能做大呢? ------------------------------------------------------------------------------…

《轻松入门!快速安装PyCharm,打造高效Python编程环境》

「Pycharm安装包和相关插件(Windows 64位)」https://www.aliyundrive.com/s/jByv6vjShVz 提取码: 1234 视频教程:https://www.douyin.com/video/7303106933521763596?previous_pageapp_code_link 第一步:找到一起下载的Pycharm安…

PyCharm:PyCharm新建.py文件时自动带出指定内容

在pycharm中加上指定内容,每次新建.py文件都会自动带出指定内容 操作: File—Setting—Editor----File and Code Templates--Python Script 在右侧窗口中加上如下信息 # encoding: utf-8 # author: Jeffrey # file: ${NAME}.py # time: ${DATE} ${TI…

java拼图游戏(待优化)

启动类 package com.yx.ui;public class App { //启动入口public static void main(String[] args) {//如果想要开启一个界面,就创建谁的对象 // new DengJFrame(); // new ZCJFrame();new GameJFrame();}}游戏类 package com.yx.ui;import java.awt.event.KeyEv…

Python大数据之linux学习总结——day10_hive调优

hive调优 hive调优hive命令和参数配置1.hive数据压缩压缩对比开启压缩 2.hive数据存储[练习]行列存储原理存储压缩比拓展dfs -du -h 3. fetch抓取4. 本地模式5. join的优化操作6. 列裁剪7. 分区裁剪8. group by 操作9. count(distinct)10. 笛卡尔积11. 动态分区[练习]12. 如何调…

多线程(初阶)

文章目录 一、认识线程(Thread)1.1 概念1.1.1 什么是线程1.1.2 为什么要有线程1.1.3 进程和线程的区别(重要)1.1.4 Java的线程和操作系统线程的关系 1.2 第一个多线程 程序1.3 创建线程(重要)1.3.1 继承 Tr…

论文-分布式-拜占庭将军问题

目录 0-前言 1-导引 2-不可能性 3将军(1叛徒)问题不存在解/不能达成共识 少于3m1个将军(有m个叛徒)不存在解/不能达成共识 精确一致性与近似一致性是同等困难的 3-使用口头消息的解 “口头消息”的含义 OM(m)算法的步骤 OM(m)算法的正确性推导 4-使用签名消息情况下…

SpringBoot中日志的使用log4j

SpringBoot中日志的使用log4j 项目中日志系统是必不可少的,目前比较流行的日志框架有 log4j、logback 等,这两个框架的作者是同一个 人,Logback 旨在作为流行的 log4j 项目的后续版本,从而恢复 log4j 离开的位置。 另外 slf4j(…

本地Git项目同时推送至GitHub和Gitee

分别在gitee和github新建一个仓库 github: gitee: 添加远程仓库 git remote add origin1 [你的GitHub仓库URL] git remote add origin2 [你的Gitee仓库URL] 在本地中初始化创建一个git本地分支 git init 进入.git目录下修改config文件 [remote "origin"] url g…

Google Earth Engine(GEE)操作

地理信息网站 Eatrth Explorer操作界面 在研究中,我们常需要遥感数据。在下面的网站中,可以得到遥感数据。 EarthExplorer (usgs.gov)https://earthexplorer.usgs.gov/登陆网站: 通常,在Additional Criteria中,可以…

【精选】项目管理工具——Maven详解

Maven简介 Maven是一个项目管理工具。它可以帮助程序员构建工程,管理jar包,编译代码,完成测试,项目打包等等。 Maven工具是基于POM(Project Object Model,项目对象模型)实现的。在Maven的管理下…

【数据结构】前言

数据结构是在计算机中维护数据的方式。 数据结构是OI重要的一部分。 同的数据结构各有优劣,能够处理的问题各不相同,而根据具体问题选取合适的数据结构,可以大大提升程序的效率。 所以,学习各种各样的数据结构是很有必要的。 数据…

车载通信架构 —— 新车载总线类型下(以太网)的通信架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不…

Azure Machine Learning - Azure AI 搜索中的集成数据分块和嵌入

在基于索引器的索引编制中,Azure AI _集成矢量化_将数据分块和文本到矢量嵌入添加到技能中,它还为查询添加文本到矢量的转换。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济本…

栈与队列:设计循环队列

目录 题目🔥: 数据模型: 本题大意: 思路分析: 代码分析: 一、定义队列 二、初始化、判断队列的空和满⭐ 初始化: 空满的判断: 三、入队和出队🎇 入队&…

LeetCode【32】最长的有效括号

题目: 思路: 括号字符串依次入栈,删除匹配的成对括号。最后栈中留下的都是无法匹配的断点。这些断点的差值减一就是断点间有效括号串的长度,取这些长度的最大值即可。 例如括号字符串 “)()((())(”,最后留在栈中的…

比Postman强在哪里

Postman的受众对象主要是广大开发人员,调测使用,它并不能完全满足专业测试人员需求,而自动化测试平台可以 1,Postman,Jmter是单机版软件,类似打游戏你和电脑PK,而很多时候是要联网和其他人团队作…

LeetCode【36】有效的数独

题目: 思路: https://blog.51cto.com/u_15072778/3788083 代码: public boolean isValidSudoku(char[][] board) {// 二维数组第一个标识 0-9行,第二个表示 0-9数字,存的内容boolean 表示第0-9行,0-9这些…

系列十二、强引用、软引用、弱引用、虚引用分别是什么?

一、整体架构 二、强引用(默认支持模式) 2.1、概述 当内存不足时,JVM开始垃圾回收,对于强引用的对象,就算是出现了OOM也不会对该对象进行回收,死都不收。 强引用是我们最常见的普通对象引用,只…