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("开启热点")
        • 生成报告查看结果
相关推荐
会开车的鸟哥7 小时前
自动创建测试用例与组件测试向导
测试用例·simuinktest
螺丝钉tina1 天前
[Playwright][08] Upload 模块自动化:如何设计真实业务测试用例?
运维·自动化·测试用例
TomEval1 天前
【测AI】第22篇:Agent 系统测试方法 — AI 学会“动手“了
人工智能·python·prompt·aigc·测试用例
车软学堂2 天前
CANoe自动化:跑起第一个测试用例
运维·车载系统·自动化·汽车·测试用例
jiangbqing3 天前
测试功能点,测试用例、测试报告全流程技能直接用
功能测试·测试用例·测试用例 测试报告
自动化测试行业观察3 天前
AI智能测试用例生成技术解析:多源融合+LLM混合生成方案与实践
自动化测试·人工智能·科技·测试用例·智能化测试·ai测试平台·ai智能遍历
TomEval3 天前
【测AI】第20篇:大模型安全测试 —— 越狱攻击与防护
人工智能·python·功能测试·ai·aigc·测试用例·安全性测试
TomEval8 天前
【测AI】第17篇:大模型评测方法论 —— LLM 怎么测?
人工智能·python·aigc·测试用例
TomEval9 天前
【测AI】第16篇:模型公平性与可解释性测试 — AI 的偏见与黑箱
人工智能·python·功能测试·ai·测试用例
川石课堂软件测试10 天前
涨薪技术|0到1学会性能测试第9课-HTTP响应统计
数据库·功能测试·网络协议·http·kubernetes·单元测试·测试用例