我正在寻找一种在 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>");
}
}
问题在于 Jenkins 将输出显示为纯文本。我尝试将输出复制到 html 页面中,它看起来不错。所以看起来 Jenkins 呈现信息的方式导致 Firefox/Chrome 将 html 代码显示为明文。知道如何解决这个问题吗?或者是否有更好的方法让 TestNG 的截屏功能与 Jenkins 一起工作?
最佳答案
您使用 jenkins 项目配置页面的“构建后操作”中的“存档工件”选项存档屏幕截图。要首先存档,您需要为项目设置自定义工作区。自定义工作区应指向根目录或包含屏幕截图文件夹的文件夹。然后在存档后,所有屏幕截图将显示为项目页面中的链接。此处“报告”将是包含屏幕截图或任何文件的文件夹。报告位于“QTP”文件夹下这在自定义工作区中提到。请在存档的工件选项中使用斜杠而不是反斜杠。
项目页面:
在 jenkins 中使用自定义工作区
使用构建后操作归档工件
关于java - 将 TestNG 屏幕截图输出到 Jenkins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29570321/