pytest(16) mark用法

1.作用

  • 给用例分类
  • 筛选执行哪些用例
  • 钩子函数读取标记
  • 控制用例行为(跳过、超时、顺序等)

2.给用例打自定义标签

2.1 pytest.ini注册

python 复制代码
[pytest]
markers =
    mytag: 自定义标签
    device: 设备标签
    module: 模块标签

2.2 在测试用例上使用

python 复制代码
import pytest

# 打标记
@pytest.mark.mytag("示波器")
@pytest.mark.device("采集设备")
def test_1():
    assert 1 == 1

@pytest.mark.module("登录模块")
def test_2():
    assert 1 == 1

2.3执行时筛选

python 复制代码
# 只执行带 mytag 的用例
pytest -m mytag

# 执行带 device 或 module 的
pytest -m "device or module"

# 不执行 mytag
pytest -m "not mytag"

2.4钩子函数获取

python 复制代码
# conftest.py
import pytest

@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(item, call):
    outcome = yield
    report = outcome.get_result()

    # 获取标记 @pytest.mark.mytag(xxx)
    tags = []
    for marker in item.iter_markers(name="mytag"):
        tags.extend(marker.args)

    print(f"用例:{item.nodeid}")
    print(f"标记内容:{tags}")
    print(f"结果:{report.outcome}")

2.5 pytest自带标记:跳过,参数化

python 复制代码
# 跳过用例
@pytest.mark.skip("暂不执行")

# 条件跳过
@pytest.mark.skipif(sys.version_info < (3,8), reason="版本太低")

# 预期失败
@pytest.mark.xfail

#  parametrize 参数化
@pytest.mark.parametrize("a,b", [(1,2), (3,4)])
相关推荐
X1A0RAN1 天前
自动化流水线提效·微观篇:pytest 执行顺序优化
自动化·pytest
久久学姐9 天前
Python+Playwright+Pytest+BDD,用FSM打造高效测试框架
python·pytest·bdd·playwright·fsm
小白上线*^_^*9 天前
Pytest 自动化测试框架速通指南(二)
软件测试·pytest·python测试框架·ai测试基础
Logintern0910 天前
pytest的AST 断言重写
pytest
Tinyfacture11 天前
接口自动化之添加商品(pytest)
python·测试工具·自动化·pytest
ji_shuke13 天前
从零深入:基于 Playwright + Pytest + Allure 的企业级 Web 端到端自动化测试框架实战
前端·自动化测试·docker·jenkins·pytest·allure·playwright
祉猷并茂,雯华若锦14 天前
Selenium+Pytest自动化测试框架实战
selenium·测试工具·pytest
祉猷并茂,雯华若锦15 天前
Pytest+Selenium自动化测试:失败自动截图集成Allure报告
selenium·测试工具·pytest
我的xiaodoujiao18 天前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
一孤程22 天前
Pytest+Selenium搭建自动化框架-保姆级实战教程
selenium·自动化·pytest