前言
pytest自动化测试中,要想报告内容丰富,优雅和可读性强,就需要与allure结合使用。allure报告有很多内置的特性,这些特性主要以配置文件、装饰器、函数等的方式使用,使我们的报告更加直观、详细。
Environment
环境变量,可以读取环境变量配置文件,并直观的展示到测试报告内。可以说是附加的功能,并没有什么实际效果,看需求而定即可。
注意:默认无此功能
如何添加环境变量
通过environment.properties文件添加
Browser=Chrome
Browser.Version=63.0
Stand=Production
Type=properties
执行allure serve report\xml 结果如下:
通过environment.xml文件添加
<environment>
<parameter>
<key>Browser</key>
<value>Chrome</value>
</parameter>
<parameter>
<key>Browser.Version</key>
<value>63.0</value>
</parameter>
<parameter>
<key>Stand</key>
<value>Production</value>
</parameter>
<parameter>
<key>Type</key>
<value>xml</value>
</parameter>
</environment>
执行allure serve report\xml 结果如下:
Categories
翻译为类别,可以理解为用例执行结果的分类,配置后可以在测试报告内根据自己的分类规则,查看用例的执行情况
默认情况下有两类缺陷:
如何创建自定义缺陷分类
要创建自定义缺陷分类,可以在生成报告之前将categories.json 文件添加到allure-results 目录(和上面环境变量文件一个目录下即可),categories.json 内容如下:
[
{
"name": "Ignored tests",
"matchedStatuses": ["skipped"]
},
{
"name": "Infrastructure problems",
"matchedStatuses": ["broken", "failed"],
"messageRegex": ".*bye-bye.*"
},
{
"name": "Outdated tests",
"matchedStatuses": ["broken"],
"traceRegex": ".*FileNotFoundException.*"
},
{
"name": "执行失败了嘤嘤嘤",
"matchedStatuses": ["failed"]
},
{
"name": "Test defects",
"matchedStatuses": ["broken"]
}
]
参数注意
- name:(必填)类别名称,可以为中文
- matchedStatuses:(可选)用例运行的状态,默认
["failed", "broken", "passed", "skipped", "unknown"] - messageRegex:(可选)用例运行的错误消息,默认
".*" ,通过正则表达式匹配 - traceRegex:(可选)用例运行的错误消息的堆栈跟踪,默认
".*" ,通过正则表达式匹配
如果用例运行结果的状态在列表中并且错误消息和堆栈跟踪都与模式匹配,则测试结果属于该类别。
注意:categories.json 如果使用[allure-maven]或[allure-gradle]插件 ,文件可以存储在测试资源目录中。
话不多说,上代码
创建用例文件test_01.py 内容如下:
import pytest
@pytest.mark.skip()
def test_01():
print("text case 01")
def test_02():
print("text case 02")
assert 1 == 2
执行pytest -vs --alluredir=./report/xml --clean-alluredir 生成报告数据
执行allure serve report\xml 打开测试报告
可以看到自定义的分类名字,Power!
|