pytest通过不同的参数循环执行一个用例文件,我如何在allure报告中展示成不同的执行结果
时间: 2023-03-31 08:04:58 浏览: 93
您可以使用pytest的fixture来实现这个功能。首先,您需要定义一个fixture,它将返回一个参数列表。然后,您可以使用pytest.mark.parametrize装饰器将fixture应用于测试函数,并提供参数列表。这将导致pytest运行测试函数多次,每次使用不同的参数。
在您的测试函数中,您可以使用allure.dynamic.title装饰器来动态设置测试用例的标题,以便在allure报告中显示不同的执行结果。您还可以使用allure.dynamic.description装饰器来添加更多的描述信息。
下面是一个示例代码:
```
import pytest
import allure
@pytest.fixture(params=[1, 2, 3])
def my_param(request):
return request.param
@allure.feature('My Feature')
@allure.story('My Story')
@pytest.mark.parametrize('my_param', [1, 2, 3], indirect=True)
def test_my_case(my_param):
allure.dynamic.title(f'My Test Case with param {my_param}')
allure.dynamic.description(f'Testing with param {my_param}')
assert my_param >
```
在这个示例中,我们定义了一个名为my_param的fixture,它返回一个参数列表[1, 2, 3]。然后,我们使用pytest.mark.parametrize装饰器将fixture应用于test_my_case函数,并提供参数列表。这将导致pytest运行test_my_case函数三次,每次使用不同的参数。
在test_my_case函数中,我们使用allure.dynamic.title装饰器来动态设置测试用例的标题,以便在allure报告中显示不同的执行结果。我们还使用allure.dynamic.description装饰器来添加更多的描述信息。最后,我们使用assert语句来检查my_param是否大于。
当您运行pytest时,它将运行test_my_case函数三次,每次使用不同的参数。在allure报告中,您将看到三个测试用例,每个测试用例都有不同的标题和描述,以反映不同的执行结果。
阅读全文