java testng 中使用 BeautifulReport 测试报告模板

本文介绍了如何在 Java TestNG 中利用 BeautifulReport 模板创建测试报告。首先,通过 Maven 添加相关依赖;其次,编写测试报告监听器 TestReportListener,该类继承自 IReporter;接着,在 testng.xml 中配置监听器;然后,提供一个自定义的 template.html 模板文件,使用在线版 Bootstrap 构建;最后,运行测试后,可以在指定路径查看生成的 HTML 测试报告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录


我在做 java 的 WebUI 自动化测试的时候,会要求生成测试报告,用 testng 自带的测试报告,样式太丑了,因此需要使用其他的模板样式,这里我考虑使用 BeautifulReport 报告模板样式,其实对于 python 来说可以直接 pip BeautifulReport 来做,当然这里我介绍的是 java 项目

这里展示一下 BeautifulReport 模板样式
在这里插入图片描述

第一步:maven 配置依赖
WebUI 项目中其实 selenium 依赖 testng 依赖都应该有,下面这个 extentreports 是用来做定制模板的依赖

<dependency>
	<groupId>org.testng</groupId>
	<artifactId>testng</artifactId>
	<version>6.14.3</version>
</dependency>
<dependency>
	<groupId>com.aventstack</groupId>
	<artifactId>extentreports</artifactId>
	<version>3.0.7</version>
</dependency>

第二步:编写测试报告监听器类
我在项目下src/test/java/com/abcnull/listener添加了一个测试报告监听器类 TestReportListener,它继承自 testng 依赖包中的 IReporter。TestReportListener 中其实没用到太多 extentreports 依赖中的 API,只有 Gson 类来自 extentreports 依赖中,基本还是靠着第三步中写好的 BeautifulReport 型式的 html 模板,代码如下:

package com.abcnull.listener;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.testng.*;
import org.testng.xml.XmlSuite;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * @author abcnull
 * @version 1.0.0
 * @date 2020/1/26
 */
public class TestReportListener implements IReporter {
   
   
    // 日期格式化
    private static Date date = new Date();
    private static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd,HH点mm分ss秒");
    private static String reportdate = simpleDateFormat.format(date);
    private static String getReportName = "自动化测试报告-" + reportdate;
    // 定义html模板所在路径
    private String templatePath = this.getClass().getResource("/").getPath() + "report/template.html";
    // 定义报告生成的路径
    private String reportDirPath = System.getProperty("user.dir") + File.separator + "target" + File.separator + "test-output" + File.separator + "report";
    private String reportPath = reportDirPath + File.separator + getReportName + ".html";
    private String name = "DemoTest";
    private int testsPass;
    private int testsFail;
    private int testsSkip;
    private String beginTime;
    private long totalTime;
    private String project = "WebUI自动化测试报告";

    @Override
    public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
   
   
        List<ITestResult> list = new ArrayList<ITestResult>();
        for (
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abcnull

您的打赏是我创作的动力之一

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值