写点什么

软件测试学习笔记丨 Allure2 报告中添加用例分类

作者:测试人
  • 2024-07-09
    北京
  • 本文字数:3903 字

    阅读完需:约 13 分钟

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/28354

Allure 分类简介

  • 应用场景:可以为项目,以及项目下的不同模块对用例进行分类管理。也可以运行某个类别下的用例。

  • 报告展示:类别会展示在测试报告的 Behaviors 栏目下。

  • Allure 提供了三个注解:

  1. @Epic:敏捷里面的概念,定义史诗,往下是 feature。

  2. @Feature:功能点的描述,理解成模块往下是 story。

  3. @Story:故事 story 是 feature 的子集。

Allure epic/feature/story 的关系

  • epic:敏捷里面的概念,用来定义史诗(需求,项目),相当于定义一个项目。

  • feature:相当于一个功能模块,相当于 testsuite,可以管理很多个子分支 story。

  • story:相当于对应这个功能或者模块下的不同场景,分支功能。

  • epic 与 feature、feature 与 story 类似于父子关系。


系统模块:@Epic/@Epics

  • 应用场景:在测试报告中看到用例所在的项目,或者定义一个项目的需求。

  • 解决方案:@Epic注解。

@Epic("需求1")//@Epic("需求13")@Epics({    @Epic("需求2"),    @Epic("需求3")})@DisplayName("步骤方法验证")public class StepMethodTest {    int result;
@Test @DisplayName("加法步骤验证") void testSum() { //测试逻辑代码 }
@Test @DisplayName("一个测试方法中添加多个大步骤") void testMultipleSteps() { //测试逻辑代码 }
@Test @DisplayName("多个步骤验证") void testSum2() { //测试逻辑代码 }}
复制代码

功能模块:@Feature/@Features

  • 应用场景:表示被测系统的不同功能模块或特性。

  • 解决方案:@Feature注解。

@Epic("需求1")//@Epic("需求13")@Epics({    @Epic("需求2"),    @Epic("需求3")})@Feature("功能模块2")@Features({        @Feature("功能模块3"),        @Feature("功能模块4")
})@DisplayName("步骤方法验证")public class StepMethodTest { int result;
@Test @DisplayName("加法步骤验证") void testSum() { //测试逻辑代码 }
@Test @DisplayName("一个测试方法中添加多个大步骤") void testMultipleSteps() { //测试逻辑代码 }
@Test @DisplayName("多个步骤验证") void testSum2() { //测试逻辑代码 }}用户故事:@Story/@Stories应用场景:定义具体的需求、用户故事或场景等。解决方案:@Story注解。@Epic("需求1")//@Epic("需求13")@Epics({ @Epic("需求2"), @Epic("需求3")})@DisplayName("步骤方法验证")public class StepMethodTest { int result;
@Story("子功能1") @Stories({ @Story("子功能2"), @Story("子功能3")
}) @Test @DisplayName("加法步骤验证") void testSum() { //测试逻辑代码 }
@Story("子功能2") @Stories({ @Story("子功能4"), @Story("子功能3")
}) @Test @DisplayName("一个测试方法中添加多个大步骤") void testMultipleSteps() { //测试逻辑代码 }
@Story("子功能7") @Stories({ @Story("子功能3"), @Story("子功能5") }) @Test @DisplayName("多个步骤验证") void testSum2() { //测试逻辑代码 }}
复制代码

用户故事:@Story/@Stories

  • 应用场景:定义具体的需求用户故事场景等。

  • 解决方案:@Story注解

@Epic("需求1")//@Epic("需求13")@Epics({    @Epic("需求2"),    @Epic("需求3")})@DisplayName("步骤方法验证")public class StepMethodTest {    int result;
@Story("子功能1") @Stories({ @Story("子功能2"), @Story("子功能3")
}) @Test @DisplayName("加法步骤验证") void testSum() { //测试逻辑代码 }
@Story("子功能2") @Stories({ @Story("子功能4"), @Story("子功能3")
}) @Test @DisplayName("一个测试方法中添加多个大步骤") void testMultipleSteps() { //测试逻辑代码 }
@Story("子功能7") @Stories({ @Story("子功能3"), @Story("子功能5") }) @Test @DisplayName("多个步骤验证") void testSum2() { //测试逻辑代码 }}package com.junit5.allure2casedesciption_l2.allurereport_addstep;
import io.qameta.allure.*;import org.junit.jupiter.api.DisplayName;import org.junit.jupiter.api.Test;import org.junit.jupiter.api.function.Executable;
import java.util.ArrayList;import java.util.List;import java.util.stream.IntStream;
import static org.junit.jupiter.api.Assertions.assertAll;import static org.junit.jupiter.api.Assertions.assertEquals;
@DisplayName("步骤方法验证-调用方法方式添加用例步骤")@Epic("购物平台")//@Epic("需求1")/** * @Epic与@Epics共存时,只能各一个,不能有多个 */@Epics({ @Epic("需求2"), @Epic("需求3"),})@Feature("登录模块")public class StepMethodTest { int result;
/** * 语法结构 * Allure.step("输入数字 3",()->{ * 测试步骤代码(可省略) * }); */ @Test @DisplayName("加法步骤验证") @Story("通过用户名和密码登录") void testSum() { Allure.step("输入数字 3"); int a = pressDigit(3); Allure.step("输入加号"); String str = pressAddition(); Allure.step("输入数字 2"); int b = pressDigit(2); Allure.step("点击等号"); result = sum(a, b); Allure.step("验证结果是否正确"); assertEquals(5, result, a + str + b + "计算错误"); }
@Test @DisplayName("一个测试方法中添加多个大步骤") @Story("通过手机号登录") void testSteps() { List<Executable> list = new ArrayList<>(); //验证登录搜索后播放是否正常 Allure.step("步骤1",()->{ //步骤1代码 System.out.println("登录");
Allure.step("输入用户名"); String name = "admin"; Allure.step("输入密码"); String pwd = "123456"; Allure.step("点击登录"); String login = name+pwd;// assert list.add(()->assertEquals("admin123456",login)); //... }); Allure.step("步骤2",()->{ //步骤2代码 System.out.println("搜索"); Allure.step("输入搜索内容名称");
Allure.step("点击搜索按钮");
Allure.step("获取搜索结果");
list.add(()->assertEquals("搜索成功","搜索成功")); //... }); Allure.step("步骤3",()->{ //步骤3代码 System.out.println("播放"); Allure.step("点击播放按钮");
Allure.step("等待2秒");
Allure.step("获取当前播放进度时间"); list.add(()->assertEquals("播放成功","播放成功")); //... });
assertAll(list); }
private int pressDigit(int digit) { return digit; }
private String pressAddition() { return "+"; }
public int sum(int... numbers) { return IntStream.of(numbers).sum(); }}package com.junit5.allure2casedesciption_l2.allurereport_addstep;
import com.junit5.User;import io.qameta.allure.Epic;import io.qameta.allure.Feature;import io.qameta.allure.Step;import org.junit.jupiter.api.DisplayName;import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
/** * @Step只能添加到非静态测试方法上 */@DisplayName("步骤方法验证-注解方式添加用例步骤")@Epic("购物平台")@Feature("订单模块")public class StepAnTest { int result;

/** *@Step("步骤描述") */ @Test @DisplayName("减法步骤验证") @Step("--减法步骤验证") void testSub() { User user =new User("刘诗诗",28); addUser(user); int a = pressDigit(6); String str = pressSubtraction(); int b = pressDigit(2); result = subtract(a, b); assertEquals(4, result, a + str + b + "计算错误"); }
@Step("输入的用户名和年龄为 {user.name},{user.age}") private int addUser(User user) { return user.getAge(); } @Step("输入数字 {digit}") private int pressDigit(int digit) { return digit; } @Step("输入减号") private String pressSubtraction() { return "-"; }
@Step("减法计算") public int subtract(int x, int y) { return x-y; }}
复制代码



软件测试开发免费视频教程分享


发布于: 刚刚阅读数: 3
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试学习笔记丨Allure2报告中添加用例分类_软件测试_测试人_InfoQ写作社区