我正在寻找在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合作?
答案 0 :(得分:4)
您使用&#34存档屏幕截图并存档工件&#34; &#34; post build actions&#34;中的选项jenkins项目配置页面。首先要归档你需要为项目设置自定义工作区。自定义工作区应指向根目录或包含屏幕截图文件夹的文件夹。然后归档后,所有屏幕截图将显示为项目页面中的链接。在这里&#34;报告&#34;将是包含屏幕截图或任何file.reports的文件夹在&#34; QTP&#34;自定义workspace.pls中提到的文件夹在存档工件选项中使用斜杠而不是反斜杠。
项目页面:
在jenkins中使用自定义工作区
使用帖子构建操作归档工件
答案 1 :(得分:0)
Jenkins控制台输出无法显示图像。但它将链接显示为链接 - 您可以从控制台输出单击它到相应的站点。
因此,可以修改您的takeScreenShotOnFailure
以将图像从从属机器移动到公共ftp文件夹&amp;提供控制台输出中的链接。
您应该能够立即看到图像。
它支持http / ftp链接。
答案 2 :(得分:0)
也许你可以使用html发布者插件。 https://wiki.jenkins-ci.org/display/JENKINS/HTML+Publisher+Plugin
生成包含文本和图像的基本html文件,它将显示为作业页面上的可点击链接。 该图像将与Jenkins中的所有其他构建数据一起存储。