一、基本介绍
pytest是一个功能强大的Python测试框架,可用于编写和执行测试用例。而allure是一种灵活、轻量级的测试报告框架,提供了丰富的报告功能,可以生成漂亮、交互式的HTML测试报告。
pytest和allure的结合,为我们提供了一种方便、直观的方法来管理和呈现测试结果。在本文中,我们将详细介绍如何使用pytest生成allure报告。
二、安装与配置
在使用pytest和allure之前,需要先安装它们。
pip install pytest
pip install allure-pytest
安装完成后,可以使用如下命令来检查版本:
pytest --version
allure --version
然后在pytest.ini中添加如下内容:
[pytest]
addopts = --alluredir=./allure-results
这将在文件夹allure-results中存储测试结果,allure报告将从这里生成。
三、生成报告
在测试代码中使用pytest来执行测试用例。执行后,将得到如下结果:
$ pytest --alluredir=./allure-results
======================================= test session starts ========================================
platform linux -- Python 3.6.5, pytest-3.8.0, py-1.5.4, pluggy-0.6.0
rootdir: /home/user/project, inifile:
plugins: allure-pytest-2.5.0
collected 3 items
test_sample.py ...
===================================== 3 passed in 0.72 seconds =====================================
可以看到,测试结果被存储在文件夹allure-results中。
接下来,我们可以使用如下命令来生成allure报告:
$ allure generate ./allure-results
执行后,在文件夹allure-report中将生成allure报告,包含交互式测试结果、图表和统计信息。
四、自定义报告
allure提供了许多配置选项,可以自定义报告的样式和内容。可以在项目文件夹中创建文件allure.json,指定各种配置选项。
例如,以下是一个allure.json文件,定制了报告的标题和logo:
{
"allure": {
"title": "自定义报告标题",
"logo": "logo.png"
},
"data": {
"labels": {
"suite": {
"sampletest": "样例测试"
}
}
}
}
然后,运行如下命令:
$ allure generate ./allure-results --config=./allure.json
生成带有自定义标题和logo的allure报告。
五、附加信息
可以将附加信息添加到allure报告中,例如详细的日志、参数和截图。
在测试代码中,可以使用如下命令添加附加信息:
@pytest.mark.parametrize("name, age", [("Tom", 20), ("Jerry", 25)])
def test_sample(name, age):
with allure.step("输入姓名"):
allure.attach("姓名:", name)
with allure.step("输入年龄"):
allure.attach("年龄:", str(age))
assert age > 18
这将添加参数和步骤信息到测试报告中。
另外,可以使用如下命令添加测试截图:
allure.attach.file("screenshot.png", attachment_type=allure.attachment_type.PNG)
六、总结
本文介绍了如何使用pytest生成allure报告,并介绍了如何安装、配置和定制allure报告。另外,我们也了解了如何在报告中添加附加信息和测试截图,让报告更加详细、直观。