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的介绍和使用(持续更新中)