您的位置:

深入了解pytest生成allure报告

一、基本介绍

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报告。另外,我们也了解了如何在报告中添加附加信息和测试截图,让报告更加详细、直观。