输出TestNG屏幕截图到Jenkins

Sto*_*eak 5 java testng selenium jenkins

我正在寻找一个在Jenkins中输出TestNG/Selenium屏幕截图的解决方案.理想情况下,当Jenkins作业运行时,我想要将图像嵌入到控制台输出中或者显示链接,以便用户可以在单独的窗口中查看屏幕截图.

这是我正在使用的功能:

@AfterMethod
public void takeScreenShotOnFailure(ITestResult testResult) throws IOException {
    if (testResult.getStatus() == ITestResult.FAILURE) {
        System.out.println("Status: " + testResult.getStatus());
        System.out.println("<img src=\"data:image/png;base64," + 
        ((TakesScreenshot)driver).getScreenshotAs(OutputType.BASE64) + "\" ></img>");
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是Jenkins将输出显示为纯文本.我尝试将输出复制到html页面,看起来很好.因此Jenkins提供信息的方式似乎导致Firefox/Chrome将html代码显示为纯文本.知道怎么解决这个问题吗?或者是否有更好的方法让TestNG的截屏功能与Jenkins一起使用?

vin*_*ins 0

Jenkins 控制台输出无法显示图像。但它将链接显示为链接 - 您可以从控制台输出中单击它到相应的站点。

因此,您takeScreenShotOnFailure可以进行修改,将图像从从机移动到公共 ftp 文件夹,并在控制台输出中提供链接。您应该能够立即看到图像。

它支持http/ftp 链接。