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

苗培腾 · 2017年06月29日 · 最后由 liuqing19880527 回复于 2019年07月30日 · 3604 次阅读

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 条回复 时间 点赞

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

2楼 已删除

点赞 ,马克

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

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

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册