首页 > 其他分享 >Pytest框架 — 13、Pytest的标记(四)(分组执行)

Pytest框架 — 13、Pytest的标记(四)(分组执行)

时间:2022-08-20 15:56:00浏览次数:96  
标签:13 标记 pytest mark print Pytest 分组 smoke test

目录

1、前言

在自动化测试工作中我们有时候并不需要测试所有的测试用例,比如在冒烟测试阶段,我们只需要测试基本功能是否正常就可以了。在pytest中提供了mark标记功能来实现分组执行。

2、mark的使用

步骤:

  1. pytest.ini中注册标记(名称可自定义)
  2. 使用@pytest.mark.上一步注册的名称标记需要执行的用例
  3. 执行

(一)注册自定义标记

pytest.ini中添加markers

[pytest] # 固定的section名
markers= # 固定的option名称,注意缩进。
    标签名1: 标签名的说明内容。
    标签名2: 不写也可以
    标签名N

示例:

[pytest]
markers =
    smoke: 冒烟测试
    back

(二)在测试用例上标记

通过@pytest.mark.标记名标记要测试的用例。
示例:

import pytest

@pytest.mark.smoke
def test_1():
    print("测试1")

@pytest.mark.back
def test_2():
    print("测试2")

def test_3():
    print("测试3")

(三)执行

通过在命令行增加-m参数指定要测试的分组。
示例:
执行冒烟用例:pytest -vs xxx.py -m smoke

"""
执行结果
collected 3 items / 2 deselected / 1 selected                                                                                                 

mark/mark/mark.py::test_1 测试1
PASSED
"""

执行回归用例:pytest -vs xxx.py -m back

"""
执行结果
collected 3 items / 2 deselected / 1 selected                                                                                                 

mark/mark/mark.py::test_2 测试2
PASSED
"""

3、扩展

(一)在同一个测试用例上使用多个标记

import pytest

@pytest.mark.back
def test_register():
    # 注册
    print("注册")

@pytest.mark.smoke
@pytest.mark.back
def test_login():
    # 登录
    print("登录")

@pytest.mark.back
def test_logout():
    # 注销
    print("注销")

@pytest.mark.smoke
def test_add_cart():
    # 加购物车
    print("加购物车")

@pytest.mark.smoke
def test_place_order():
    # 下单
    print("下单")

@pytest.mark.smoke
@pytest.mark.pay
def test_pay_order():
    # 支付订单
    print("支付订单")

在执行时支持通过and,or,or来连接多个标记,如下

  • pytest -vs -m "smoke or pay" xxx.py,此时只有登录,加购物车,下单,支付订单这4个用例执行
  • pytest -vs -m "smoke and pay" xxx.py,此时只有支付订单这个用例执行
  • pytest -vs -m "not smoke" xxx.py,此时只有注册,注销这2个用例执行

(二)在测试类上使用标记

import pytest

@pytest.mark.smoke
class TestLogin:
    def test_login(self):
        print("登录")

标签:13,标记,pytest,mark,print,Pytest,分组,smoke,test
From: https://www.cnblogs.com/qishuaiRisen/p/16607892.html

相关文章

  • Pytest框架 — 12、Pytest的标记(三)(重复执行)
    目录1、前言2、--count参数使用(一)在命令行或者main函数使用(二)在全局配置文件中使用3、--repeat-scope参数使用4、@pytest.mark.repeat(count)装饰器使用5、结合参数x使重复......
  • the server responded with a status of 413 (Request Entity Too Large) 解决
    前端上传文件,本地测试好的,放到服务器上出现了这个错误:theserverrespondedwithastatusof413(RequestEntityTooLarge)问题原因:服务器上使用了nginx,是nginx做了大......
  • CF1336A
    题目链接  题目意思:给一个以\(1\)为根,\(n-1\)条双向边的树形结构,让我们选出\(k\)个节点作为出发点前往根节点\(1\),算出每一个出发点到根节点的路径上有多少个非出发点的......
  • Java SE 13 新增特性
    JavaSE13新增特性作者:Grey原文地址:JavaSE13新增特性源码源仓库:Github:java_new_features镜像仓库:GitCode:java_new_features新版Switch使用方式switch语......
  • 信2105-3班张少阳20213904第八周java学习总结
    本周进一步深入学习了类以及接口的用法,区别以及类似点1.3接口的成员特点1)成员变量:只能是常量,默认修饰符publicstaticfinal2)构造方法接口没有构造方法,因为接口主要是......
  • 123213
    packageaction;importcom.opensymphony.xwork2.Action;publicclassHelloWorldActionimplementsAction{//请求中传递的参数和返回给页面的值都定义成属性......
  • 123213
    packageaction;importcom.opensymphony.xwork2.Action;publicclassHelloWorldActionimplementsAction{//请求中传递的参数和返回给页面的值都定义成属性......
  • ES按照时间分组,且可将时间字段“格式化”后再分组
    需求:需要按照一个时间比如createTime进行分组,且只取精确到分钟后进行分组,例如createTime="2022-08-1914:31:59",分组时按照createTime="2022-08-1914:31"分组解决方案1......
  • mysql运行sql文件报错[ERR] 2006 - MySQL server has gone away [ERR] -- MySQL dump
    原因:在运行数据库脚本文件时报该错,由于mysql对max_allowed_packect 允许最大的数据包的大小有限制解决方法:1.先查看现在允许的最大包大小,单位(字节) select@@max_allow......
  • 【题解】[FARIO2013]Torusia
    通信题,小A和小B迷失在\(4096\times4096\)的方阵中。方阵是循环的,比如\((0,4095)\)的右边是\((0,0)\),上面是\((4095,4095)\)。两人都不知道自己的绝对位置。每......