allure

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。和我们预料的执行结果一样。

allure

5. 生成在线html 可视化报告

使用 allure 生成在线 html 测试报告。继续在当前终端执行allure serve ./allure-result

allure serve ./allure-result

如果看到下面的执行结果算是执行成功了

allure

随后会自动跳转到浏览器,在新标签页中展示我们的测试报告。

allure

点击左侧的导航栏,可以看到每个 case 的执行情况

allure

以上内容大量参考 allure 官方文档,少量参考:python allure的介绍和使用(持续更新中)

 

上一篇:Python测试框架pytest(23)插件 - pytest-picked、pytest-lazy-fixture


下一篇:Pytest系列(6)- 标记mark的使用