likes
comments
collection
share

优雅展示:使用Allure和Pytest创建漂亮测试报告

作者站长头像
站长
· 阅读数 7

前言

之前用pytest-html生成报告,体验不是很好,经过调研,决定使用Allure。

Allure是一个用于生成漂亮的测试报告的开源框架,它支持多种测试框架和编程语言。那该如何使用Allure生成测试报告,如何将Allure集成到pytest中使用,我们一起学习。

Allure的使用

可以先看看官方提供的demo:allure-framework.github.io/allure-demo…

安装Allure

使用Allure需要先安装Allure命令行工具。

官方网站(docs.qameta.io/allure/#_in…)提供了安装方式。

笔者是Mac系统,可以通过以下命令进行安装:

brew install allure

当然,也可以下载安装包进行安装,下载地址(github.com/allure-fram…),下载完成后可以配置环境变量

export PATH=$PATH:/usr/local/allure-2.24.1/bin

最后,验证一下是否安装成功

allure --version

因为Allure是用Java写的,所以如果无法运行,那么要检查下有没有安装Java。

在测试代码中添加Allure注解

在测试代码中添加Allure注解可以用于指定测试用例的一些关键信息,例如用例名称、优先级、描述等。以下是一些常用的Allure注解:

  • @allure.feature("feature_name"):指定测试用例所属的功能模块名称;
  • @allure.story("story_name"):指定测试用例所属的用户故事名称;
  • @allure.title("test_title"):指定测试用例的标题;
  • @allure.description("test_description"):指定测试用例的描述信息;
  • @allure.severity(allure.severity_level.CRITICAL):指定测试用例的严重程度;
  • @allure.issue("issue_id"):指定测试用例相关的issue编号;
  • @allure.link("url"):指定测试用例相关的链接。

例如,以下是一个使用了Allure注解的测试用例:

import allure
import pytest

@allure.feature("登录功能")
@allure.story("普通用户登录")
@allure.title("测试普通用户登录")
@allure.description("测试普通用户登录功能是否正常")
@pytest.mark.normal_user
def test_normal_user_login():
    # 测试代码

Allure与Pytest集成

安装pytest-allure插件

运行测试用例并生成Allure报告需要使用到pytest-allure插件,这个插件可以将pytest生成的测试结果转换成Allure所需的格式。我们可以通过pip安装该插件:

$ pip install allure-pytest

运行测试用例并生成Allure报告

在安装完成后,我们可以在pytest命令中添加--alluredir参数,指定生成Allure报告所需的数据输出目录:

$ pytest --alluredir=./allure_report

运行完毕后,我们可以在指定的输出目录中找到生成的Allure报告数据。

要在测试完成后查看报告,需要使用Allure命令行实用程序从结果生成报告,命令如下:

$ allure serve ./allure_report

运行完成后,将在默认浏览器中显示所生成的报告。 如果想要生成Allure测试报告, 执行allure generate /path/to/report/directory -o /path/to/report/output/directory

报告组成

总览

总览包括测试套件、环境、趋势、类别及具体场景。可以单击链接进入不同的具体展示页面详细查看。单击左下角En按钮可选择更换为中文。

类别

按测试用例状态进行过滤,可以选择通过、跳过、失败等进行选择并查看

测试套件

缺陷页面提供了测试执行过程中所发现的缺陷的详细清单,可以区分与失败测试相对应的产品缺陷(Product Defects)及与破坏测试相对应的测试缺陷(Test Defects)。可以查看每个测试套件的测试统计信息及每个测试用例的详细信息

功能

通过报告可以轻松查看哪些功能存在问题

图形

图形可以帮助我们直观地评估测试结果

时间轴

在时间轴页面显示每个测试用例在哪个时间点开始执行,并且它运行了多长时间

展示不同文件夹(包Packages)执行情况

Allure框架优势

  • 从开发及质量保证的角度来看,Allure报告可以缩短常见缺陷的生命周期:可以将测试失败划分为Bug和破坏性测试,还可以配置日志、步骤、初始化和销毁、附件、时间、历史记录与测试管理系统及Bug跟踪系统的集成,因为负责任的开发人员和测试人员需要掌握所有信息。
  • 从管理人员的角度来看,Allure提供了一个清晰的“全局”,涵盖了所需要的功能、缺陷聚集的位置、执行时间表的外观及许多其他方面的事情。Allure的模块化和可扩展性确保开发人员始终能够微调某些东西,以使Allure更适合项目开发。

原理

Allure基于标准xUnit结果输出,但添加了一些补充数据。任何报告都通过两个步骤生成。

在测试执行期间(第一步),通过与不同语言的客户端(Python语言是allure-pytest库)将有关已执行测试的信息保存到xml文件中。

在报告生成(第二步)期间,xml文件将被转换为HTML报告。这可以通过命令行工具、CI插件或构建工具来完成。

最后

Allure可以帮助我们生成漂亮的测试报告,提高测试效率和代码质量。还可以根据自己的需求来定义测试报告。那该如何定制,我们另作分享。