pytest系列——allure(五)之在测试用例添加标题(@allure.title())
前言
通过使用装饰器@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更新后的标题了。】: