输出TestNG屏幕截图到Jenkins

问题描述 投票:5回答:3

我正在寻找一种在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一起使用?

java selenium jenkins testng
3个回答
4
投票

您可以使用jenkins项目配置页面的“post build actions”中的“archive the artifacts”选项来存档屏幕截图。首先,您需要为项目设置自定义工作区。自定义工作区应指向根目录或归档后,该文件夹包含截图文件夹。然后归档后,所有截图将显示为项目页面中的链接。这里的“报告”将是包含屏幕截图或任何文件的文件夹。报告位于“QTP”文件夹下。在自定义workspace.pls中,在存档工件选项中使用斜杠而不是反斜杠。

项目页面:

在jenkins中使用自定义工作区

使用后期构建操作归档工件


0
投票

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

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

它支持http / ftp链接。


0
投票

也许你可以使用html发布者插件。 https://wiki.jenkins-ci.org/display/JENKINS/HTML+Publisher+Plugin

生成包含文本和图像的基本html文件,它将在您的作业页面上显示为可单击的链接。该图像将与Jenkins中的所有其他构建数据一起存储。

© www.soinside.com 2019 - 2024. All rights reserved.