未显示扩展报告图像

时间:2018-09-30 10:39:41

标签: java extentreports

我正在对硒测试使用范围报告。

捕获屏幕截图:

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());

但是该报告在本地看起来不错。。但是我想通过电子邮件发送范围报告。。图像未显示。

如何解决这个问题?

2 个答案:

答案 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());