本文转自测试人社区,原文链接:ceshiren.com/t/topic/283…
Allure2 报告中添加用例步骤
应用场景:编写自动化测试用例的时候经常会遇到需要编写流程性测试用例的场景,一般流程性的测试用例的测试步骤比较多,我们在测试用例中添加详细的步骤会提高测试用例的可阅读性。
Allure2 报告中添加用例步骤
- Allure 支持两种方法:
-
方法一:使用
Allure.step()方法添加。 -
方法二:使用
@Step注解添加。
-
调用方法添加用例步骤
- 方法一:使用
Allure.step()方法添加。
实例1
@DisplayName("步骤方法验证")
public class StepMethodTest {
int result;
@Test
@DisplayName("加法步骤验证")
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 + "计算错误");
}
private int pressDigit(int digit) {
return digit;
}
private String pressAddition() {
return "+";
}
public int sum(int... numbers) {
return IntStream.of(numbers).sum();
}
}
实例2
@Test
@DisplayName("一个测试方法中添加多个大步骤")
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);
}
使用注解方式添加用例步骤
- 方法二:使用
@Step注解定义一个测试步骤,在测试用例中使用。
package com.junit5;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String name;
private int age;
}
package com.junit5;
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("步骤注解验证")
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;
}
}
注解不生效原因
- 没有正确引入依赖。
- 没有使用
JUnit5或TestNG测试框架。 - 没有正确使用
@Step注解。 - 未在
Allure报告中启用步骤。
推荐学习
【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战
【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)
【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)
【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)
【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)
【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试
【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff
【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享
【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装
【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?
【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!
【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我
【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化
【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试
【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !
【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置