需要你的帮助!
我一直致力于将自动化测试集成到Jenkins。我使用Serenity BDD和JBehave。当我手动运行测试时,我的Serenity报告显示OK。但是,当我将测试集成到Jenkins并尝试通过Publish HTML Report Plugin显示报表时,它无法显示饼图并缺少其他元素。
知道如何解决这个问题吗?
答案 0 :(得分:4)
实际上你并不需要降级詹金斯。出现此问题的原因是现代浏览器支持新的内容安全策略标头。正确的解决方案可以是以下(CentOS 7的代码示例和路径):
通过Jenkins系统属性配置内容策略标头:
sudo vim /etc/sysconfig/jenkins
set java options as following:
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.model.DirectoryBrowserSupport.CSP=\"sandbox allow-forms allow-scripts; default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';\""
# save and exit
sudo /etc/init.d/jenkins restart
安装Jenkins CORS过滤器插件:https://wiki.jenkins-ci.org/display/JENKINS/Cors+Filter+Plugin
享受结果: - )
有关内容安全政策的更多详细信息:http://content-security-policy.com
答案 1 :(得分:2)
我在Ubuntu 16.04上得到了如下工作
转到/ etc / default / jenkins并设置低于值
JAVA_ARGS =" -Djava.awt.headless = true -Dhudson.model.DirectoryBrowserSupport.CSP = \" sandbox allow-forms allow-scripts; default-src' self&#39 ;; script-src' self' '不安全直插&#39 ;; style-src' self' '不安全直插&#39 ;; img-src数据:; \""
使用命令
重新启动jenkinsGoto Jenkins>管理Jenkins>脚本控制台在
下面运行System.setProperty(" hudson.model.DirectoryBrowserSupport.CSP","")
关闭现有的Jenkins浏览器窗口并以隐身模式打开新窗口。
参考
Jenkins Content Security Policy
Jenkins - HTML Publisher Plugin - No CSS is displayed when report is viewed in Jenkins Server
答案 2 :(得分:0)
我也面临着同样的问题。我在脚本控制台中使用了一些代码,通过HTML插件显示了范围报告,它可以工作,但饼图不可见,然后进行了很多探索,最后我还找到了以下代码,通过这些代码,我也可以查看饼图在我的报告中。进入脚本控制台并运行以下代码;
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src * 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * 'unsafe-inline';")
答案 3 :(得分:-2)
解决。需要降级詹金斯。