我正在使用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
的屏幕截图进一步的调查结果:
我对其进行了进一步调查,发现未显示屏幕截图的原因。实际的屏幕快照路径为** 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