allure 是一个能够生成美观可视化测试报告的插件。它有以下特点:
- allure 是一个轻量级,灵活的,支持多语言的测试报告工具
- 多平台的,奢华的 report 框架;
- 可以为 dev/qa 提供详尽的的测试报告、测试步骤、log;
- 也可以为管理理层提供 high level 统计报告;
- Java 语言开发的,支持 pytest, JaveScript, PHP, ruby等
- 可以集成到 Jenkins
下面是一个 allure 插件与 pytest 集成使用的新手 demo 教程,教程参考 allure 官方文档。
1. 安装 alure
下面是 mac 系统的安装命令,其他系统请点此查看安装方式
brew install allure
2. 安装 allure-pytest 插件
这个插件用于和 pytest 集成,收集 pytest 运行时 case 的执行情况。
安装命令为 pip install allure-pytest
$ pip install allure-pytest
3. 编写case和配置环境
我这里创建了一个名为 allure_test 的文件夹,文件夹下只有两个文件和一个文件夹,其中两个文件一个是空的 __init__.py 文件,另一个是 test_allure_demo.py。allure-result 文件夹是用来存放测试报告的,里面是三个必要的配置文件。下面展开介绍每个文件的内容。
allure_test/
├── __init__.py # 空文件
├── test_aullure_demo.py # 测试case文件
└── allure-result # 测试结果文件夹
├── categories.json
├── environment.properties
└── environment.xml
__init__.py
空的
test_aullure_demo.py
这个是 pytest 的执行的 case,可以看到有4个 case,一个成功的 case,一个跳过的 case,两个失败的 case。
import pytest
def test_success():
"""this test succeeds"""
assert True
def test_failure():
"""this test fails"""
assert False
def test_skip():
"""this test is skipped"""
pytest.skip('for a reason!')
def test_broken():
raise Exception('oops')
allure-result 文件夹
这个文件夹下的三个文件是环境配置文件,你想在哪个文件夹下生成测试报告,就把这三个配置文件放在哪个文件夹下。目前并不十分清楚每个配置文件的作用。下面是每个配置文件分别的内容,自己动手实践时无需修改,直接复制即可。
categories.json
[
{
"name": "Ignored tests",
"matchedStatuses": [
"skipped"
]
},
{
"name": "Infrastructure problems",
"matchedStatuses": [
"broken",
"failed"
],
"messageRegex": ".*bye-bye.*"
},
{
"name": "Outdated tests",
"matchedStatuses": [
"broken"
],
"traceRegex": ".*FileNotFoundException.*"
},
{
"name": "Product defects",
"matchedStatuses": [
"failed"
]
},
{
"name": "Test defects",
"matchedStatuses": [
"broken"
]
}
]
environment.properties
Browser=Chrome
Browser.Version=63.0
Stand=Production
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>
</environment>
4. 运行case 并设置测试报告保存路径
当前终端进入到 allure_test 路径下,执行下面的命令,pytest 执行 case,并带上--alluredir
参数指明测试报告的保存路径。
pytest --alluredir=./allure-result
下面是运行结果,成功了一个 case ,失败了2个 case,跳过1个 case。和我们预料的执行结果一样。
5. 生成在线html 可视化报告
使用 allure 生成在线 html 测试报告。继续在当前终端执行allure serve ./allure-result
allure serve ./allure-result
如果看到下面的执行结果算是执行成功了
随后会自动跳转到浏览器,在新标签页中展示我们的测试报告。
点击左侧的导航栏,可以看到每个 case 的执行情况
以上内容大量参考 allure 官方文档,少量参考:python allure的介绍和使用(持续更新中)