使用extentreports生存自动化测试的测试报告
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用extentreports生存自动化测试的测试报告相关的知识,希望对你有一定的参考价值。
最近使用了extentreports,代替了原来简陋的测试报告。下面来分享一下成果和心得。
我的自动化测试使用的是selenium webdriver+junit4的架构。
junit有个@Rule功能,所以我使用
@Rule public ReportMaker reportRule = new ReportMaker(driver);
将具体的逻辑写到ReportMaker里面,写法是继承TestWatcher,这个是junit rule里提供的类,用来获取运行状态和结果,可以重写failed和succeeded实现错误信息截图和生成报告。
以failed方法为例:
@Override protected void failed(Throwable e, Description description) { // 截图 TakesScreenshot takesScreenshot = (TakesScreenshot) browser; File scrFile = takesScreenshot.getScreenshotAs(OutputType.FILE); File destFile = getDestinationFile(description); try { FileUtils.copyFile(scrFile, destFile); } catch (IOException ioe) { throw new RuntimeException(ioe); } ExtentReports extent = createReport(); ExtentTest test = extent.startTest(description.getDisplayName(), "Test failed, here for further details"); // 记录错误信息 test.log(LogStatus.FAIL, e); // 由于我有出错重跑机制,故进行分类 if (methodName.contains(description.getDisplayName())){ test.assignCategory("Retry Class Result"); }else { test.assignCategory("First Run Class Result"); } methodName.add(description.getDisplayName()); flushReports(extent, test); }
succeeded方法只要不记录错误信息即可
创建和结束report的方法参考官网上的
private ExtentReports createReport() { ExtentReports extent = new ExtentReports(filenameOfReport, false); return extent; } private void flushReports(ExtentReports extent, ExtentTest test){ // ending test extent.endTest(test); // writing everything to document extent.flush(); }
结果展示:
生成的report目录结构如下:
每次运行在设定的路径下生成一个以时间命名的文件夹
每个文件夹中包含两个部分
错误截图和生成的html报告
报告效果如下:
更多的图就不贴了,参考extentreports的官方主页,效果还是挺美观的。
参考文档:
extentreports的文档(介绍的比较详细):
junit应用extentreports的参考文档:
以上是关于使用extentreports生存自动化测试的测试报告的主要内容,如果未能解决你的问题,请参考以下文章
接口自动化测试之TestNG测试报告ExtentReports的应用
接口自动化框架(java)--5.通过testng.xml生成extentreport测试报告
TestNG+ExtentReports生成超漂亮的测试报告