Allure2 报告中添加用例分类

一. 简介

在测试过程中,为了更好地管理项目及其不同模块下的用例,我们可以利用 Allure 根据模块对用例进行分类,分类后的测试报告就不再是一堆平铺直叙的用例列表,而会变成一个有层级、有结构的专业测试报告。 这不仅有助于整理报告结构,还支持只运行特定类别下的用例。


二、Allure 添加用例分类

Allure 报告通过层级化的方式展示用例结构,通常包含 Epic(史诗)Feature(特性)Story(故事) 三个层级。

epic 与 feature,feature 与 story 类似于父子关系:

  • @allure.epic:史诗。对应敏捷开发中的概念,通常定义为一个大的项目或需求集。

  • @allure.feature:特性/功能模块。相当于一个具体的功能模块或测试套件,包含多个子分支。

  • @allure.story:故事/子功能。对应功能模块下的具体场景或分支功能。


2.1 项目/需求层级分类 - @allure.epic(name)装饰器

若要在测试报告中清晰地展示用例所属的项目,应使用 @allure.epic 装饰器。

该装饰器通常应用于测试类,而非单个测试用例,用于定义一个宏观的项目或需求集。由于其覆盖范围较广,我们通常会在 epic 之下,进一步使用粒度更细的 @allure.story 来定义具体的用户故事或业务场景,从而形成清晰的层级结构。

  • 语法:@allure.epic("项目需求描述")

  • 业务场景:安卓端手机基本功能测试

    • 定义项目分类(Android),记录其关联的测试用例

      • 代码示例

        python 复制代码
        import allure
        
        @allure.epic("Android")
        class TestEpic:
        
            def test_case1(self):
                print("拨打电话")
        
            def test_case2(self):
                print("发送短信")
        
            def test_case3(self):
                print("接听电话")
        
            def test_case4(self):
                print("链接WiFi")
        
            def test_case5(self):
                print("开启热点")
        • 效果如下
          • 直接显示URL

2.2 功能模块层级分类 - @allure.feature(name)装饰器

通过 @allure.feature(name) 可以将项目分类中进行模块基本的分类,使用例管理更清晰。

  • 语法:@allure.feature('功能名称')

  • 业务场景:安卓端手机存在多个模块如:电话、蓝牙、WiFi等

    • 定义模块分类(call、WiFi),记录和管理其模块内部用例

      • 代码示例

        python 复制代码
        import allure
        
        @allure.epic("Android")
        @allure.feature("call")
        class TestEpicCall:
        
            def test_case1(self):
                print("拨打电话")
        
            def test_case2(self):
                print("发送短信")
        
            def test_case3(self):
                print("接听电话")
        
        @allure.epic("Android")
        @allure.feature("WiFi")
        class TestEpicWifi:
        
            def test_case4(self):
                print("链接WiFi")
        
            def test_case5(self):
                print("开启热点")
        • 生成报告查看结果

2.3 子功能/场景层级分类 - @allure.story(name)装饰器

如果要在报告中看到测试的子功能的描述,可以使用 @allure.story

  • 语法:@allure.story('子功能名称')

    • 相同的子功能名称会被归类为一个子功能层级下
  • 业务场景:安卓端手机存在多个模块如:电话、蓝牙、WiFi等

    • 在模块分类下,按子功能进行进一步分类

      • 代码示例

        python 复制代码
        import allure
        	
        @allure.epic("Android")
        @allure.feature("call")
        class TestEpicCall:
        
            @allure.story("通讯功能")
            def test_case1(self):
                print("拨打电话")
        
            @allure.story("通讯功能")
            def test_case3(self):
                print("接听电话")
        
            @allure.story("发送短信")
            def test_case2(self):
                print("发送短信")
        
        @allure.epic("Android")
        @allure.feature("WiFi")
        class TestEpicWifi:
        
            @allure.story("链接WiFi")
            def test_case4(self):
                print("链接WiFi")
        
            @allure.story("开启热点")
            def test_case5(self):
                print("开启热点")
        • 生成报告查看结果
相关推荐
2302_805771072 天前
Day13Jmeter数据驱动
功能测试·单元测试·测试用例·需求分析·测试
2302_805771072 天前
Day14Jmeter+数据库的操作
功能测试·单元测试·测试用例·需求分析
2302_805771072 天前
Day18在接口自动化测试中引入pytest用例管理框架
功能测试·单元测试·测试用例·需求分析·测试
梧桐凰4 天前
AI 时代测试工程师的武器库:实战工具指南
人工智能·功能测试·测试用例
测试老哥5 天前
接口测试的测试用例应该怎么写?
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
程序员杰哥5 天前
UI自动化测试:Jenkins配置
自动化测试·软件测试·python·测试工具·职场和发展·jenkins·测试用例
测试19987 天前
Jmeter接口自动化测试:Jmeter变量的使用
自动化测试·软件测试·测试工具·jmeter·职场和发展·测试用例·接口测试
2601_962300819 天前
基于pytest的接口自动化测试:使用requests模块的实战项目与接口关联方法详解
接口自动化测试·测试用例·pytest·接口关联·requests模块
可乐鸡翅yeah_10 天前
MPEG‑TS 分片 PTS/DTS 时间戳异常排错,HLS 音画不同步定位实战
运维·测试用例·音视频·媒体·m3u8