前言
在测试过程中,清晰的测试报告对于了解测试结果和问题定位非常关键。如何使用 pytest 和 Allure 报告创建清晰的测试报告,本文将介绍通过使用 allure.title
来增强测试报告的可读性。
allure.title的三种使用方式
- 直接使用@allure.title为测试用例自定义标题;
@allure.title
支持通过占位符的方式传递参数,可以实现测试用例标题参数化,动态生成测试用例标题;@allure.dynamic.title
动态更新测试用例标题。
下面我们依次对这三种使用方式进行举例:
直接使用@allure.title为测试用例自定义标题
代码如下:
import pytest
import allure
@allure.title("自定义测试用例标题")
def test_with_title():
assert True
if __name__ == '__main__':
pytest.main(['-s', 'test_allure_title.py'])
执行下面命令来生成测试报告
# 执行测试,生成json文件
pytest test_allure_title.py --clean-alluredir --alluredir=./results
# 展示报告
allure serve ./results
浏览器默认打开的测试报告如下图:
参数化测试用例标题
示例代码如下:
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'])
因为我们使用了和上面同样的文件名,所以我们不需要改变命令,直接使用上面的命令即可,生成的测试报告如下图:
动态更新标题
代码如下:
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'])
运行命令之后,生成的测试报告打开如下:
总结
本文主要介绍了如何使用allure.title
给测试用例添加标题,更加直观的用例标题可以帮助团队更好地理解测试执行过程,从而更容易地进行问题定位和修复。希望本文可以帮到大家!