ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-08-20 16:03:19  阅读:202  来源: 互联网

标签: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
来源: https://www.cnblogs.com/qishuaiRisen/p/16607892.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有