持续集成 解决 jenkins 下使用 HTML Publisher 插件后查看 html 报告显示不正常 以 jmeter 报告为例

苗培腾 · June 29, 2017 · Last by liuqing19880527 replied at July 30, 2019 · 8259 hits

jenkins 配置使用html publisher查看jmeter html报告时,发现显示不全,很多东西显示不了。

项目配置:

查看html报告异常(很多资源无法加载):

控制台查看加载日志(与安全机制有关):

在查看官方文档后,这原来是安全问题所导致的。

Jenkins安全默认是将以下功能都关闭了
1、javascript
2、html上的内置插件
3、内置css或从其它站的css
4、从其它站的图处
5、AJAX

我的网页使用的是css和Js,所以显示不全。解决方法如下:
在jenkins系统管理中输入以下脚本运行:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

如下图:

再次运行查看,显示正确
注意:
此方法只适用于 HTML Publisher Plugin to version 1.10以上的版本

参考文档:https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy

以上方法,在每次重启Jenkins后会重置jenkins的安全配置,需要再次执行;

下面就介绍下永久解决的方法:
jenkins上安装 Groovy 插件,用来执行系统 Groovy 脚本,安装完成后,在增加构建步骤里添加:
Execute system Groovy script

执行脚本:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

把脚本执行集成在项目中,这样就不用担心Jenkins重启了。
参考文档:https://stackoverflow.com/questions/35783964/jenkins-html-publisher-plugin-no-css-is-displayed-when-report-is-viewed-in-j

共收到 6 条回复 时间 点赞

嗯 这个的确影响不少报告的

2Floor has been deleted

点赞 ,马克

但这个方法每次重启Jenkins后又要跑一下这个脚本。。希望知道哪里能把这个设置作为长久配置😧

debugtalk 回复

👍 👍 👍

请教个问题哈,我构建成功之后,Jenkins里面查看HTML Report,报告可以正常显示,但是中文显示都是乱码,但是发送的邮件中文都是正常的,麻烦帮忙看看,感谢~

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up