屏幕快照未在Jenkins下的TestNGResults中显示

时间:2019-06-06 20:06:56

标签: java html selenium-webdriver jenkins-plugins

我正在使用onTestFailure方法在TestNG结果中显示错误屏幕截图。我正在使用Jenkins进行测试,但是图像未在TestNG结果中显示,但是将其显示为链接,单击此分散的图像链接没有任何反应。当我使用鼠标复制图像链接并尝试在浏览器中打开它时,图像会正确显示,这意味着图像路径正确。

public class ScreenshotListener extends  TestListenerAdapter {

    @Override
    public void onTestFailure(ITestResult result) {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat formater = new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss");
        String methodName = result.getName();
        //String pathToScreen;

        if(!result.isSuccess()){
            File scrFile = ((TakesScreenshot)GlobalVar.wDriver).getScreenshotAs(OutputType.FILE);
            try {
                String reportDirectory = new File(System.getProperty("user.dir")).getAbsolutePath() + "/target/surefire-reports";
                File destFile = new File((String) reportDirectory+"/failure_screenshots/"+methodName+"_"+formater.format(calendar.getTime())+".png");

                FileUtils.copyFile(scrFile, destFile);
                Reporter.log("<a href='"+ destFile.getAbsolutePath() + "'> <img src='"+ destFile.getAbsolutePath() + "' height='100' width='100'/> </a><br />");
            }catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

我希望图像链接应显示错误的正确屏幕截图,但显示空白屏幕截图。我已经附上了TestNGResults enter image description here

的屏幕截图

进一步的调查结果:

我对其进行了进一步调查,发现未显示屏幕截图的原因。实际的屏幕快照路径为** C:\ SelWrokspaceLuna 18 May \ RDTest \ target \ surefire-reports \ failure_screenshots \,但jenkin工作区路径为** {http://localhost:8080/job/firstjob/ws/target/surefire-reports/failure_screenshots/

有人可以建议如何在Selenium脚本中获取Jenkin工作区的路径吗?这样我就可以在我的HTML中给jenkin工作区路径。基本上如何在硒脚本中了解此路径 http://localhost:8080/job/firstjob/ws

0 个答案:

没有答案