Allure精通指南(01)介绍与基本使用



请添加图片描述

Allure 前言

Allure是一个灵活的轻量级多语言测试报告工具,它不仅提供了美观且信息丰富的测试报告,还便于与持续集成(CI)系统无缝集成。

Allure是开源的,并且支持多种主流测试框架的集成,包括但不限于JavaJUnitTestNG,以及 Pythonpytest等。

Allure的工作原理在于,它会在测试执行期间收集测试用例的详细信息,并将这些数据保存在XMLJSON格式的文件中。
随后,通过Allure的命令行工具或CI插件,这些文件可以被转换成易于阅读的HTML报告。
这些报告提供了丰富的信息,如测试用例的状态、执行时间、日志输出、屏幕截图等,帮助开发团队更全面地了解测试情况,从而做出更明智的决策。

Allure 官网

allure官网: https://docs.qameta.io/allure/

pytest结合:https://allurereport.org/docs/pytest/

allure样例:https://allure-framework.github.io/allure-demo/9/

请添加图片描述

Allure 官方介绍

  • Allure Framework是一种灵活的轻量级多语言测试报告工具,不仅可以以简洁的Web报告形式非常简洁地显示已测试的内容,也允许参与开发过程的每个人从日常测试中提取最大程度的有用信息。

  • 从开发/质量保证的角度来看,Allure报告可以缩短常见缺陷的生命周期:可以将测试失败划分为bug和损坏的测试,还可以配置logstepfixtureattachmentstimings,历史记录以及与TMS的集成以及Bug跟踪系统,因此负责任的开发人员和测试人员将掌握所有信息。

  • 从管理人员的角度来看,Allure提供了一个清晰的“全局”,涵盖了已涵盖的功能,缺陷聚集的位置,执行时间表的外观以及许多其他方便的事情。

  • Allure的模块化和可扩展性确保您始终能够微调某些东西,以使Allure更适合您。

  • 在当前市面上所有第三方或者自研的测试报告系统中,Allure是最全面,且支持的测试框架最多的一个测试报告系统。它是开源的测试报告框架,它旨在创建让团队每一个人都清楚明了的测试报告。

Allure 报告的特点及其受推崇的原因

1. 缩短缺陷生命周期

  • 从开发和质量保证的角度来看,Allure报告为团队提供了一个高效的工具,有助于缩短常见缺陷的生命周期。通过Allure,团队能够更快速地识别和分类问题,从而加速问题的修复和验证。

2. 细致的问题分类与信息管理

  • Allure报告允许将测试失败明确地划分为bug损坏的测试(Broken tests)。此外,它还支持对日志、步骤、固定装置、附件、时间、历史记录等关键信息进行细致的配置和管理。通过集成TMSBug跟踪系统,Allure能够方便地绑定任务(Task)与负责该任务的开发和测试人员,确保所有相关人员都能及时获取并处理所有相关信息。

3. 提供清晰的全局视野

  • 对于管理人员来说,Allure报告提供了一个清晰的全局视野,帮助他们更好地了解测试的整体情况。通过Allure,管理人员可以清晰地看到哪些功能已经被测试覆盖,Bug主要集中在哪些区域,以及整体和单条测试用例的执行时间表。这些信息对于制定项目决策、调整资源分配和优化开发流程至关重要。

Allure 安装与环境配置

  • 安装allure-pytest插件
  • 配置allure-python-commons拓展(请参考第二篇文章)
pip install allure-pytest

Allure 报告生成的原理

Allure报告的生成基于两个核心步骤,它利用标准的xUnit结果输出并添加补充数据以提供详细的测试报告。

1. 测试执行与数据收集

  • 在测试执行期间,Allure通过一个名为Adapter的轻量级库与测试框架集成。
  • 这个 Adapter 负责捕获测试执行过程中的所有关键信息,如测试用例的状态(通过、失败、跳过等)、执行时间、日志输出、屏幕截图等。这些信息随后被结构化地保存到XMLJSON文件中。
  • Allure为多种流行的测试框架提供了预置的Adapter,包括PythonpytestJavaJUnit等,从而确保了广泛的兼容性和易用性。

2. XML 到 HTML 报告的转换

  • 一旦收集了XML文件中的测试数据,Allure会将这些数据转换为人类可读的HTML报告。
  • 这一转换过程可以通过多种方式实现,包括使用持续集成(CI)系统中的Allure插件,或者通过命令行工具直接执行。
  • 转换过程不仅将原始的测试数据呈现为易于阅读的格式,还会添加额外的功能,如交互式的测试用例导航、自定义报告布局和样式、以及高级的分析和统计功能。

Allure 生成测试报告步骤一

构建pytest项目,安装规则编写测试用例函数

test_case_01.py文件代码

import allure
import pytest


def test_case_01():
    """测试函数01"""
    assert True
    print("测试函数01执行完成")


class TestClass1:

    @pytest.mark.parametrize("username,password", [["admin", "admin"], ["root", "root"], ["guest", "123456"]])
    def test_case_02(self, username, password):
        """测试函数02"""
        allure.attach(
            body=f"用户名:{username},密码:{password}",
            name="用户登录参数",
            attachment_type=allure.attachment_type.TEXT
        )
        assert username == password, "模拟用户登录,如果用户名和密码不一致则失败"
        print("测试函数02执行完成")

test_case_02.py文件代码

import allure
import pytest


def test_case_03():
    """测试函数03"""
    assert False


class TestClass2:

    @pytest.mark.parametrize("v1,v2,expected", [[1, 1, 2], [2, 2, 4], [3, 3, 3]])
    def test_case_04(self, v1, v2, expected):
        """测试函数04"""
        allure.attach(
            body=f"参数1:{v1},参数2:{v2},预期结果:{expected}",
            name="求和",
            attachment_type=allure.attachment_type.TEXT
        )
        assert v1 + v2 == expected, "两数之和与预期值不符则失败"
        print("测试函数04执行完成")

Allure 生成测试报告步骤二

使用pytest 结合Allure进行测试时,可以通过指定 --alluredir 参数来告诉Allure在哪里存储测试报告的原始数据。

这些原始数据通常是JSON格式的,它们包含了测试用例的详细执行结果,以及可能的日志和附件信息。

执行以下命令:

pytest --alluredir=./report/tmp    # --alluredir表示指定测试报告数据的生成路径

这条命令会执行所有默认的或指定的pytest测试用例,并将生成的 Allure 报告原始数据保存在当前目录下的 report/tmp 文件夹中。

这些 JSON 文件将包含每个测试用例的结果,以及任何相关的日志和附件。

  • JSON 文件:这些是Allure报告的原始数据文件,包含了测试用例的详细执行信息。
  • TXT 文件:这些通常是日志文件,包含了测试执行过程中的详细信息,有助于开发者进行问题排查。
  • ATTACH 文件:这些是附件文件,可能包含了与测试用例相关的任何额外信息,例如屏幕截图或日志文件。

请添加图片描述

Allure 生成测试报告步骤三

生成测试报告前需要将原始数据渲染成HTML页面

执行命令

allure generate report/tmp -o report/allure-report -c report/allure-report

参数解释

  • report/tmp:每个用例的执行结果生成的每个json文件存放的位置,allure最终会将这些json文件渲染成网页结果
  • -o report/allure-reportallure报告生成后存放的位置
  • -c report/allure-report新的allure报告生成之前先把旧的allure报告清理掉

请添加图片描述

Allure 生成测试报告步骤四

执行完上述命令后,接着执行命令:

allure open report/allure-report
  • 参数:-h, (–host):指定域名地址;
  • 参数:-p, (–port):指定端口号;

请添加图片描述

  • 27
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

需要休息的KK.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值