我正在对硒测试使用范围报告。
捕获屏幕截图:
public String captureScreen() throws IOException {
TakesScreenshot screen = (TakesScreenshot) driver;
File src = screen.getScreenshotAs(OutputType.FILE);
String dest = "./reports/" + System.currentTimeMillis() + ".png";
File target = new File(dest);
FileUtils.copyFile(src, target);
return target.getAbsolutePath();
}
public ExtentTest startTestCase(String testName) {
test = extent.createTest(testName);
return test;
}
public void endTestcase() {
extent.setAnalysisStrategy(AnalysisStrategy.CLASS);
}
public void endResult() {
extent.flush();
}
要附加屏幕截图,我正在使用以下代码:
test.pass("Navigated to Payment Step 1 Page",MediaEntityBuilder.createScreenCaptureFromPath(captureScreen()).build());
但是该报告在本地看起来不错。。但是我想通过电子邮件发送范围报告。。图像未显示。
如何解决这个问题?
答案 0 :(得分:0)
您必须存储和链接来自共享或http位置的图像,才能使其可见。或者,发送附带所有图像的zip文件。由于存在特定的电子邮件模板,因此不确定通过电子邮件查看报告的效果如何。
答案 1 :(得分:0)
第一步:您必须创建一个新方法getBase64Screenshot()并将图像转换为Base64,并在需要时调用此方法 “ ActionsClass.java”
公共静态字符串getBase64Screenshot()引发IOException {
Date oDate = new Date();
SimpleDateFormat oSDF = new SimpleDateFormat("yyyyMMddHHmmss");
String sDate = oSDF.format(oDate);
String encodedBase64 = null;
FileInputStream fileInputStream = null;
TakesScreenshot screenshot = (TakesScreenshot) Base.driver;
File source = screenshot.getScreenshotAs(OutputType.FILE);
String destination =System.getProperty("user.dir")+"\\Foldername\\target\\cucumber-reports\\"+"Screenshot_" + sDate + ".png";
File finalDestination = new File(destination);
FileUtils.copyFile(source, finalDestination);
try {
fileInputStream =new FileInputStream(finalDestination);
byte[] bytes =new byte[(int)finalDestination.length()];
fileInputStream.read(bytes);
encodedBase64 = new String(Base64.encodeBase64(bytes));
}catch (FileNotFoundException e){
e.printStackTrace();
}
return "data:image/png;base64,"+encodedBase64;
}
第2步:要在范围报告中附加屏幕截图(通过/失败),我们可以使用 Report.addScreenCaptureFromPath(ActionsClass.getBase64Screenshot());