输出TestNG屏幕截图到Jenkins

时间:2015-04-10 20:41:20

标签: 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合作?

3 个答案:

答案 0 :(得分:4)

您使用&#34存档屏幕截图并存档工件&#34; &#34; post build actions&#34;中的选项jenkins项目配置页面。首先要归档你需要为项目设置自定义工作区。自定义工作区应指向根目录或包含屏幕截图文件夹的文件夹。然后归档后,所有屏幕截图将显示为项目页面中的链接。在这里&#34;报告&#34;将是包含屏幕截图或任何file.reports的文件夹在&#34; QTP&#34;自定义workspace.pls中提到的文件夹在存档工件选项中使用斜杠而不是反斜杠。

项目页面:

enter image description here

在jenkins中使用自定义工作区

enter image description here

使用帖子构建操作归档工件

enter image description here

答案 1 :(得分:0)

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

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

它支持http / ftp链接。

答案 2 :(得分:0)

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

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