java testng 使用 extentreports 测试报告
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java testng 使用 extentreports 测试报告,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2930字,纯文字阅读大概需要5分钟。
内容图文
![java testng 使用 extentreports 测试报告](/upload/InfoBanner/zyjiaocheng/645/e91d862bfb2f486bb9593770fe97bb2e.jpg)
文章目录
testng 原版的测试报告太难看了,这里采用 extentreports 测试报告,效果很赞有没有!
![java testng 使用 extentreports 测试报告 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501101217324.jpg)
除了基本 testng 的依赖外,还要如下依赖:
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>3.1.5</version>
</dependency>
第二步:编写测试报告监听器类
extentreports 的测试报告监听器类怎么写呢?
可以参照如下官方编写 demo,官方讲解非常非常清楚
extentreports 官方使用 demo
英文不好的小伙伴,可以参照 testerhome 中已经翻译过的这篇文章
extentreports 社区翻译版 demo
在自己测试项目 listener 包中新建一个监听器类 ExtentTestNGIReporterListener.java 然后代码如下:
public class ExtentTestNGIReporterListener implements IReporter {
private static final String OUTPUT_FOLDER = "test-output/";
private static final String FILE_NAME = "Extent.html";
private ExtentReports extent;
@Override
public void generateReport(List xmlSuites, List suites, String outputDirectory) {
init();
for (ISuite suite : suites) {
Map result = suite.getResults();
for (ISuiteResult r : result.values()) {
ITestContext context = r.getTestContext();
buildTestNodes(context.getFailedTests(), Status.FAIL);
buildTestNodes(context.getSkippedTests(), Status.SKIP);
buildTestNodes(context.getPassedTests(), Status.PASS);
}
}
for (String s : Reporter.getOutput()) {
extent.setTestRunnerOutput(s);
}
extent.flush();
}
private void init() {
ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter(OUTPUT_FOLDER + FILE_NAME);
htmlReporter.config().setDocumentTitle("ExtentReports - Created by TestNG Listener");
htmlReporter.config().setReportName("ExtentReports - Created by TestNG Listener");
htmlReporter.config().setTestViewChartLocation(ChartLocation.BOTTOM);
htmlReporter.config().setTheme(Theme.STANDARD);
extent = new ExtentReports();
extent.attachReporter(htmlReporter);
extent.setReportUsesManualConfiguration(true);
}
private void buildTestNodes(IResultMap tests, Status status) {
ExtentTest test;
if (tests.size() > 0) {
for (ITestResult result : tests.getAllResults()) {
test = extent.createTest(result.getMethod().getMethodName());
for (String group : result.getMethod().getGroups())
test.assignCategory(group);
if (result.getThrowable() != null) {
test.log(status, result.getThrowable());
}
else {
test.log(status, "Test " + status.toString().toLowerCase() + "ed");
}
test.getModel().setStartTime(getTime(result.getStartMillis()));
test.getModel().setEndTime(getTime(result.getEndMillis()));
}
}
}
private Date getTime(long millis) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(millis);
return calendar.getTime();
}
}
IReporter 是 testng 自带的报告接口,一般测试报告监听器会继承它。这个监听器中很多地方可以去做定制化的修改
第三步:testng.xml 配置监听器
代码如下:
<listeners>
<listener class-name="com.abcnull.listener.ExtentTestNGIReporterListener"/>
</listeners>
第四步:查看测试报告
运行测试用例之后,你会在项目下 test-output 中看到 Extent.html 测试报告
abcnull 发布了134 篇原创文章 · 获赞 44 · 访问量 6万+ 私信 关注内容总结
以上是互联网集市为您收集整理的java testng 使用 extentreports 测试报告全部内容,希望文章能够帮你解决java testng 使用 extentreports 测试报告所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。