问题描述
我在项目版本4.0.9中使用了范围报告,并向报告添加了失败报告的屏幕快照,添加后很容易生成报告,但是当我尝试打开屏幕截图时,它显示的图像是破碎的。
我正在使用两个类文件来生成报告:-
第一类文件,在该文件中,我仅配置报告的基本设置,然后将范围报告对象返回给我的侦听器类,该类的代码如下:-
package com.parellelFramework.ReportUtils;
import com.aventstack.extentreports.ExtentReports;
import com.aventstack.extentreports.reporter.ExtentSparkReporter;
import com.aventstack.extentreports.reporter.configuration.Theme;
public class ExtentReporterUtils {
static ExtentReports extentReporter;
public static ExtentReports extentReportGenerator(){
String path=System.getProperty("user.dir")+"/Extent-reports/index.html";
ExtentSparkReporter sparkReporter=new ExtentSparkReporter(path);
sparkReporter.config().setReportName("Demo insurance Test report");
sparkReporter.config().setDocumentTitle("Parallel test execution");
sparkReporter.config().setTheme(Theme.DARK);
extentReporter=new ExtentReports();
extentReporter.attachReporter(sparkReporter);
extentReporter.setSystemInfo("OS NAME",System.getProperty("os.name"));
extentReporter.setSystemInfo("JAVA VERSION",System.getProperty("java.version"));
extentReporter.setSystemInfo("MAVEN VERSION",System.getProperty("3.6.3"));
extentReporter.setSystemInfo("USER LOCATION",System.getProperty("user.country"));
extentReporter.setSystemInfo("USER TIME",System.getProperty("user.timezone"));
return extentReporter;
}
}
然后,我使用ITestListener类,在其中使用常规方法,并添加日志并将屏幕快照附加到报告中
package com.parellelFramework.ReportUtils;
import com.aventstack.extentreports.ExtentReports;
import com.aventstack.extentreports.ExtentTest;
import com.aventstack.extentreports.Status;
import com.parellelFramework.utilities.CommonUtils;
import org.testng.ITestListener;
import org.testng.ITestResult;
import java.io.IOException;
public class ExtentReportListener implements ITestListener{
ExtentReports reporter;
ExtentTest extentTest;
public void onTestStart(ITestResult result) {
reporter=ExtentReporterUtils.extentReportGenerator();
extentTest=reporter.createTest(result.getMethod().getMethodName()+" has been started");
}
public void onTestSkipped(ITestResult result) {
extentTest.log(Status.INFO,result.getMethod().getMethodName()+ "has been skipped");
}
public void onTestSuccess(ITestResult result) {
try {
extentTest.log(Status.PASS,result.getMethod().getMethodName()+" has been successfully completed");
extentTest.addScreenCaptureFromPath(CommonUtils.TakeScreenshot(result.getMethod().getMethodName()),result.getMethod().getMethodName());
System.out.println("Screenshot captured and added");
reporter.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
public void onTestFailure(ITestResult result) {
extentTest.log(Status.FAIL,result.getMethod().getMethodName()+"has been failed");
try {
extentTest.addScreenCaptureFromPath(CommonUtils.TakeScreenshot(result.getMethod().getMethodName()),result.getMethod().getMethodName());
System.out.println("Screenshot captured and attached in report");
reporter.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
现在,当生成带有屏幕截图的报告时,我在屏幕截图中出现了损坏的图像。我已经尝试过使用MediaEntitybuilder将屏幕快照附加到报告中,但是并没有解决问题。所以请帮助
附有参考图像:-
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)