java - 将 TestNG 屏幕截图输出到 Jenkins

标签 java selenium jenkins testng

我正在寻找一种在 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”文件夹下这在自定义工作区中提到。请在存档的工件选项中使用斜杠而不是反斜杠。

项目页面:

enter image description here

在 jenkins 中使用自定义工作区

enter image description here

使用构建后操作归档工件

enter image description here

关于java - 将 TestNG 屏幕截图输出到 Jenkins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29570321/

相关文章:

java - 从 XMLResourceParser 获取 org.w3c.dom.Document

VS 测试步骤无法完成的 Azure 管道

python - Selenium,通过 Xpath 获取元素 - 仅获取页面上的最后 60 个元素

ios - 在 XCode 6.0/6.1 上使用聚合目标时代码签名失败

Jenkins 管道: How to get the list of file from workspace?

java - 为什么使用 Java 的流 API 收集器进行管道分组需要更多时间?

java - JMX 连接和 session 处理

Ruby/Selenium 问题识别列表中显示的项目

php - PHP 的托管持续集成?

海量数据处理导致Java内存泄漏