实现Pytest测试用例按顺序循环执行多次

要实现测试用例按顺序循环执行多次,可以使用 pytest 的自定义装饰器或插件。这里有两种方法可以实现这个需求:

方法一:使用 pytest-repeat 插件

pytest-repeat 插件允许你重复执行测试用例。你可以使用 --count 参数来指定每个测试用例的执行次数。但为了实现指定顺序的循环执行,需要手动控制测试用例的执行顺序。

安装插件

首先,安装 pytest-repeat 插件:

bash 复制代码
pip install pytest-repeat
示例代码

假设有三个测试用例 test_case1, test_case2, 和 test_case3,你可以这样写:

python 复制代码
import pytest

@pytest.mark.repeat(2)
def test_case1():
    print("Executing test_case1")

@pytest.mark.repeat(2)
def test_case2():
    print("Executing test_case2")

@pytest.mark.repeat(2)
def test_case3():
    print("Executing test_case3")
执行命令

执行以下命令来运行测试用例:

bash 复制代码
pytest --count=2

这样,每个测试用例将依次执行两次。

方法二:自定义循环逻辑

如果你希望完全控制循环执行的逻辑,可以在一个测试用例中手动调用其他测试用例。

示例代码
python 复制代码
import pytest

def test_case1():
    print("Executing test_case1")

def test_case2():
    print("Executing test_case2")

def test_case3():
    print("Executing test_case3")

def test_repeat_cases():
    for _ in range(2):  # 控制循环次数
        test_case1()
        test_case2()
        test_case3()
执行命令

直接运行这个测试脚本:

bash 复制代码
pytest -s

-s 参数允许在控制台输出打印内容。

方法三:使用 pytestpytest_generate_tests 动态生成测试用例

通过 pytestpytest_generate_tests 钩子函数可以动态生成测试用例,按顺序执行,并且可以控制循环次数。

示例代码
python 复制代码
import pytest

def test_case(case_number):
    print(f"Executing test_case{case_number}")

def pytest_generate_tests(metafunc):
    if "case_number" in metafunc.fixturenames:
        for _ in range(2):  # 控制循环次数
            metafunc.parametrize("case_number", [1, 2, 3], indirect=False)
执行命令

直接运行这个测试脚本:

bash 复制代码
pytest -s

输出结果

plaintext 复制代码
Executing test_case1
Executing test_case2
Executing test_case3
Executing test_case1
Executing test_case2
Executing test_case3

结论

这些方法可以根据需求来选择。如果你需要严格的顺序和循环控制,方法二和方法三更灵活;如果你需要简单的重复执行,pytest-repeat 插件会更方便。

相关推荐
流星白龙8 小时前
【接口自动化测试项目】3.配置登录测试用例
测试用例
测试者家园10 小时前
测试用例智能生成:是效率革命,还是“垃圾进,垃圾出”的新挑战?
人工智能·职场和发展·测试用例·测试策略·质量效能·智能化测试·用例设计
程序员小远11 小时前
使用Postman进行一次完整的接口测试
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
我的xiaodoujiao12 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 44--将自动化测试结果自动推送至钉钉工作群聊
前端·python·测试工具·ui·pytest
我的xiaodoujiao15 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 45--生成项目需要的requirements.txt依赖文件
python·学习·测试工具·pytest
月明长歌16 小时前
全栈测试修炼指南:从接口策略到 Python+Pytest+Allure 企业级架构
python·架构·pytest
一晌小贪欢1 天前
Python 测试利器:使用 pytest 高效编写和管理单元测试
python·单元测试·pytest·python3·python测试
我送炭你添花2 天前
Pelco KBD300A 模拟器:20.搭建pytest集成测试基础框架 + 模拟器闭环测试
python·集成测试·pytest
卓码软件测评2 天前
第三方软件课题验收测试【使用Docker容器部署LoadRunner负载生成器以实现弹性压测 】
测试工具·docker·容器·性能优化·单元测试·测试用例
耿小洋2 天前
如何借助AI完成测试用例的生成?实测高效落地指南
人工智能·测试用例