前言
通过使用装饰器@allure.title可以为测试用例自定义一个更具有阅读性的易读的标题。
allure.title的三种使用方式:
- 直接使用@allure.title为测试用例自定义标题;
- @allure.title支持通过占位符的方式传递参数,可以实现测试用例标题参数化,动态生成测试用例标题;
- @allure.dynamic.title动态更新测试用例标题;
allure.title的例子:
# file_name: test_allure_title.py import pytest import allure @allure.title("自定义测试用例标题") def test_with_title(): assert True if __name__ == ‘__main__‘: pytest.main([‘-s‘, ‘test_allure_title.py‘])
执行命令:
> pytest test_allure_title.py --alluredir=./report/result_data
> allure serve ./report/result_data
查看测试报告展示效果【 下面的测试报告中,我们已经通过装饰器@allure.title自定义了测试用例的标题;】:
allure.title占位符传递参数,参数化测试用例标题:
# file_name: test_allure_title.py import pytest import allure @allure.title("参数化测试用例标题:参数1 = {param1} and 参数2 = {param2}") @pytest.mark.parametrize("param1, param2, expected", [ (1, 1, 2), (1, 3, 5) ]) def test_with_parametrize_title(param1, param2, expected): assert param1 + param2 == expected if __name__ == ‘__main__‘: pytest.main([‘-s‘, ‘test_allure_title.py‘])
执行命令:
> pytest test_allure_title.py --alluredir=./report/result_data
> allure serve ./report/result_data
查看测试报告展示效果【下面的测试报告中,我们已经实现了通过在装饰器@allure.title中使用占位符的方式给标题传递参数,来实现测试用例标题的参数化,动态生成标题;】:
allure.dynamic.title动态更新标题:
# file_name: test_allure_title.py import pytest import allure @allure.title("这个标题将会被测试用例中的标题替换掉") def test_with_dynamic_title(): assert True allure.dynamic.title("断言成功后,标题将会被替换成这个标题") if __name__ == ‘__main__‘: pytest.main([‘-s‘, ‘test_allure_title.py‘])
执行命令:
> pytest test_allure_title.py --alluredir=./report/result_data
> allure serve ./report/result_data
查看测试报告展示效果【 从下面的测试报告中可以看到,测试用例的标题被替换成了在测试用例中使用allure.dynamic.title更新后的标题了。】: