博客
关于我
Pytest自动化测试框架:mark用法---测试用例分组执行
阅读量:806 次
发布时间:2023-03-05

本文共 2028 字,大约阅读时间需要 6 分钟。

Pytest中的标记(mark)功能是一款强大的测试管理工具,它允许你为测试用例或测试类添加标签,从而实现测试分组和精确控制测试执行顺序。通过合理配置标签,你可以轻松实现只执行特定标签下的测试用例,或者同时执行多个标签的测试用例。

Pytest标记的基本使用

在Pytest中使用标记功能,可以按照以下步骤操作:

  • 注册测试标签:通过修改pytest.ini配置文件,注册所需的测试标签名。例如,你可以在配置文件中添加以下内容:

    [pytest]markers = [    "system_test:系统测试标签",    "login_module: 登录模块标签"]
  • 标注测试用例:在每个测试用例前面使用@pytest.mark.标签名注解,标注所需的测试标签。例如:

    import pytestclass TestDemo01:    @pytest.mark.system_test    def test_case_01(self):        print('执行TestDemo01 test_case_01')        assert True    @pytest.mark.login_module    def test_case_02(self):        print('执行TestDemo01 test_case_02')        assert True
  • 执行测试时指定标签:在运行Pytest时,通过命令行参数指定要执行的测试标签。例如:

    pytest -s -v -m "system_test or login_module"
    • 使用or连接两个标签,表示同时执行两个标签下的测试用例。
    • 使用and连接两个标签,表示同时满足两个标签的测试用例才会执行。
    • 如果需要排除某个标签,可以使用not关键字。
  • 标签分组执行示例

    为了更直观地理解标签分组执行的效果,我们可以创建以下测试用例:

  • test_demo_mark_01.py文件

    import pytestclass TestDemo01:    @pytest.mark.system_test    def test_case_01(self):        print('执行TestDemo01 test_case_01')        assert True    @pytest.mark.login_module    def test_case_02(self):        print('执行TestDemo01 test_case_02')        assert True
  • test_demo_mark_02.py文件

    import pytestclass TestDemo02:    @pytest.mark.login_module    @pytest.mark.system_test    def test_case_01(self):        print('执行TestDemo02 test_case_01')        assert True    def test_case_02(self):        print('执行TestDemo02 test_case_02')        assert True

    通过观察,可以看出每个测试用例都标注了两个标签。当运行Pytest时,可以通过指定特定的标签组合来执行相应的测试用例。

  • 运行测试时的命令示例

    run_case.py文件中,你可以通过以下方式指定要执行的测试标签组合:

    import pytest# 只执行system_test分组下的测试用例pytest.main(['-s', '-v', '-m', 'system_test'])# 执行system_test或login_module分组下的测试用例pytest.main(['-s', '-v', '-m', 'system_test or login_module'])# 同时执行system_test和login_module分组下的测试用例pytest.main(['-s', '-v', '-m', 'system_test and login_module'])# 排除login_module分组下的测试用例pytest.main(['-s', '-v', '-m', 'not login_module'])

    通过这些命令,你可以灵活地控制测试用例的执行顺序和范围,从而实现精确的测试管理和执行。

    总结

    Pytest的标记功能为测试管理提供了强大的工具。通过合理配置标签,你可以实现测试用例的分组执行、精确控制测试顺序以及灵活管理测试环境。只要熟练掌握这些功能,你就能显著提升测试效率,减少测试覆盖率的遗漏问题。希望这篇文章能为你提供实用的帮助!

    转载地址:http://mnafk.baihongyu.com/

    你可能感兴趣的文章
    Python 中 PIL 读取图片出现异常旋转的解决方法
    查看>>
    python读取word表格内容(1)
    查看>>
    python 中os.path.join 双斜杠的解决办法
    查看>>
    python 中PIL.Image和OpenCV图像格式相互转换
    查看>>
    Python 中Semaphore 信号量对象、Event事件、Condition
    查看>>
    python 中with的使用及样例
    查看>>
    python读取wav文件并播放[pyaudio/wave]
    查看>>
    python读取txt文件的行数
    查看>>
    Python 中内置的最大堆 API
    查看>>
    Python 中只有一个 True 和一个 False 对象吗?
    查看>>
    python读取mtcars数据集并实现以下操作_关于数据处理。。,Python交流,技术交流区,鱼C论坛 - Powered by Discuz!...
    查看>>
    Python 中多线程与多处理之间的区别
    查看>>
    Python 中如何使用 lambda 函数
    查看>>
    Python 中如何创建多行字符串?
    查看>>
    Python 中如何处理异常?
    查看>>
    Python 中如何实现列表的切片?
    查看>>
    Python 中如何实现字典的排序?
    查看>>
    Python 中常用的数据类型及相关操作详解
    查看>>
    python 中文乱码
    查看>>
    Python 中生成器与普通函数的区别
    查看>>