【cucumber】cucumber-reporting生成测试报告

原始的cucumber report 比较粗糙

我们可以通过cucumber-reporting 插件对报告进去优化

在pom.xml里面添加cuccumber-reporting 插件

XML 复制代码
 <!-- 根据 cucumber json文件 美化测试报告-->
        <dependency>
            <groupId>net.masterthought</groupId>
            <artifactId>cucumber-reporting</artifactId>
            <version>5.7.5</version>
        </dependency>

根据cuccumber-reporting创建一个工具类 reportUtils.java 生成报告:

java 复制代码
package com.cacho.s2b.lesson.util;

import net.masterthought.cucumber.Configuration;
import net.masterthought.cucumber.ReportBuilder;
import net.masterthought.cucumber.presentation.PresentationMode;
import net.masterthought.cucumber.sorting.SortingMethod;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * @Description cucumber-reporting 美化测试报告
 * @Author LingWei
 * @date 2023/12/31
 **/

public class reportUtils {
    public void generateCucumberReport(){
        String buildNumber = "Release 23.12";
        String projectName = "Test Demo";
        File reportOutputDirectory = new File("target");
        List<String> jsonFiles = new ArrayList<>();
        // 根据cucumber生成的原始json报告去生成测试报告
        jsonFiles.add("target/json-report/run.json");
        // 测试报告配置信息目录,项目名称
        Configuration configuration = new Configuration(reportOutputDirectory,projectName);
        // 测试报告版本
        configuration.setBuildNumber(buildNumber);
        // 测试报告展示模式
        configuration.addPresentationModes(PresentationMode.EXPAND_ALL_STEPS);
        configuration.addPresentationModes(PresentationMode.PARALLEL_TESTING);
        // 排序方式设置
        configuration.setSortingMethod(SortingMethod.ALPHABETICAL);

        configuration.addClassifications("Platform","Windows 11");
        configuration.addClassifications("Component","API Test");
        configuration.addClassifications("Version","23.12");
        configuration.addClassifications("User","Cacho");
        // json文件和配置一起去生成报告
        ReportBuilder reportBuilder = new ReportBuilder(jsonFiles,configuration);
        reportBuilder.generateReports();
    }
}

在测试入口类 ApiTest.java 里面添加@AfterClass,并调用reportUtils.java,用cucumber跑完测试后的json文件,再去生成美化后的报告。

java 复制代码
package com.cacho.s2b.lesson;

import com.cacho.s2b.lesson.engine.ApiInfoHub;
import com.cacho.s2b.lesson.util.reportUtils;

import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
import lombok.extern.slf4j.Slf4j;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;

@Slf4j
@RunWith(Cucumber.class)
@CucumberOptions(
     plugin ={"pretty","json:target/json-report/run.json"}, // 生成的json文件
     features = {"classpath:features" },        //features路路径,
     glue = "com.cacho.s2b.lesson",             //步骤所在的包名
     monochrome = true,                        //
     tags = "@test"                            //指定标签,多标签:"标签1 or/and/and not 标签2"
)
public class ApiTest {
    @BeforeClass
    public static void beforeClass(){
        ApiInfoHub apiEnv = ApiInfoHub.getInstance();
        log.info("运行的环境是:{}",apiEnv.getEnvInfo().getDescription());
    }
    @AfterClass
    public static void afterClass(){
        reportUtils report = new reportUtils();
        report.generateCucumberReport();
    }
}

运行后在项目的target\cucumber-html-reports目录下生成报告 测试报告样式:

相关推荐
玛卡巴卡015 分钟前
Maven 从入门到实战:搞定依赖管理与 Spring Boot 项目构建
java·spring boot·maven
vortex517 分钟前
用 Scoop 快速部署 JeecgBoot 开发环境:从依赖安装到服务管理
java·windows·springboot·web·开发·jeecg-boot
جيون داد ناالام ميづ42 分钟前
Spring Boot 核心原理(一):基础认知篇
java·spring boot·后端
fantasy5_52 小时前
手撕vector:从零实现一个C++动态数组
java·开发语言·c++
十八旬2 小时前
RuoYi-Vue3项目定制修改全攻略
java·windows
任风雨2 小时前
3.1.1.Java基础知识
java·开发语言
脸大是真的好~2 小时前
黑马JAVA+AI 加强03-集合-Collection-List和Set集合-迭代器(Iterator)遍历-并发修改异常
java
cj6341181502 小时前
DBeaver连接本地MySQL、创建数据库表的基础操作
java·后端
书院门前细致的苹果3 小时前
深入理解 Java 多线程与线程池 —— 从原理到实战
java·开发语言
大G的笔记本3 小时前
用 Redis 的 List 存储库存队列,并通过 LPOP 原子性出队来保证并发安全案例
java·数据库·redis·缓存