前言
之前用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...),下载完成后可以配置环境变量
ruby
export PATH=$PATH:/usr/local/allure-2.24.1/bin
最后,验证一下是否安装成功
css
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注解的测试用例:
python
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安装该插件:
ruby
$ pip install allure-pytest
运行测试用例并生成Allure报告
在安装完成后,我们可以在pytest命令中添加--alluredir
参数,指定生成Allure报告所需的数据输出目录:
ini
$ pytest --alluredir=./allure_report
运行完毕后,我们可以在指定的输出目录中找到生成的Allure报告数据。
要在测试完成后查看报告,需要使用Allure命令行实用程序从结果生成报告,命令如下:
shell
$ allure serve ./allure_report
运行完成后,将在默认浏览器中显示所生成的报告。
报告组成
总览
总览包括测试套件、环境、趋势、类别及具体场景。可以单击链接进入不同的具体展示页面详细查看。单击左下角En按钮可选择更换为中文。
类别
按测试用例状态进行过滤,可以选择通过、跳过、失败等进行选择并查看
测试套件
缺陷页面提供了测试执行过程中所发现的缺陷的详细清单,可以区分与失败测试相对应的产品缺陷(Product Defects)及与破坏测试相对应的测试缺陷(Test Defects)。可以查看每个测试套件的测试统计信息及每个测试用例的详细信息
功能
通过报告可以轻松查看哪些功能存在问题
图形
图形可以帮助我们直观地评估测试结果
时间轴
在时间轴页面显示每个测试用例在哪个时间点开始执行,并且它运行了多长时间
包
展示不同文件夹(包Packages)执行情况
Allure框架优势
- 从开发及质量保证的角度来看,Allure报告可以缩短常见缺陷的生命周期:可以将测试失败划分为Bug和破坏性测试,还可以配置日志、步骤、初始化和销毁、附件、时间、历史记录与测试管理系统及Bug跟踪系统的集成,因为负责任的开发人员和测试人员需要掌握所有信息。
- 从管理人员的角度来看,Allure提供了一个清晰的"全局",涵盖了所需要的功能、缺陷聚集的位置、执行时间表的外观及许多其他方面的事情。Allure的模块化和可扩展性确保开发人员始终能够微调某些东西,以使Allure更适合项目开发。
原理
Allure基于标准xUnit结果输出,但添加了一些补充数据。任何报告都通过两个步骤生成。
在测试执行期间(第一步),通过与不同语言的客户端(Python语言是allure-pytest库)将有关已执行测试的信息保存到xml文件中。
在报告生成(第二步)期间,xml文件将被转换为HTML报告。这可以通过命令行工具、CI插件或构建工具来完成。
最后
Allure可以帮助我们生成漂亮的测试报告,提高测试效率和代码质量。还可以根据自己的需求来定义测试报告。那该如何定制,我们另作分享。