测试工作中,偶尔会遇到这种情况:使用Jenkins生成的HTML Report报告,却无法正常展示,今天就来讲一下解决办法。

  临时解决方案

  要解决该问题,方式也比较简单,就是修改Content Security Policy的默认配置。

  修改方式为,进入Manage Jenkins->Script console,输入如下命令并进行执行。

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

  当看到如下结果后,则说明配置修改已经生效。

  Result

  Result:

  再次进行构建,新生成的HTML就可以正常展示样式了。需要说明的是,该操作对之前构建生成的HTML报告无效。

  永久解决方案

  不过,该方法还存在一个问题:该配置只是临时生效,当重启Jenkins后,Content Security Policy又会恢复为默认值,从而HTML样式又没法展示了。

  当前,Jenkins官方还没有相应的解决方法,我们只能在每次启动或重启Jenkins时,重新修改该安全策略。

  如果手工地来重复这项工作,也是可行,但并不是一个好的解决方案。

  回到刚才的Script console,会发现我们执行的命令其实就是一段Groovy代码;那么,如果我们可以实现在Jenkins每次启动时自动地执行该Groovy代码,那么也就同样能解决我们的问题了。

  好在Jenkins已经有相应的插件:

  Startup Trigger: 可实现在Jenkins节点(master/slave)启动时触发构建;

  Groovy plugin: 可实现直接执行Groovy代码。

  搜索安装startup-trigger-plugin和Groovy插件后,我们就可以进行配置了。

  配置方式如下:

  新建一个job,该job专门用于Jenkins启动时执行的配置命令;

  在Build Triggers模块下,勾选Build when job nodes start;

  在Build模块下,Add build step->Execute system Groovy script,在Groovy Script中输入配置命令,System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")。

  需要注意的是,添加构建步骤的时候,应该选择Execute system Groovy script,而不是Execute Groovy script。关于这两者之间的差异,简单地说,Groovy Script相当于是运行在master/slave系统JVM环境中,而system groovy script,则是运行在Jenkins master的JVM环境中,与前面提到的Jenkins Script Console功能相同。如需了解更多信息,可查看Groovy plugin的详细说明。

  至此,我们就彻底解决HTML样式展示异常的问题了。

  但还有一点需要格外注意,在本文的演示中,我们修改CSP(Content Security Policy)配置时关闭了的所有安全保护策略,即将hudson.model.DirectoryBrowserSupport.CSP设置为空,其实这是存在很大的安全隐患的。

  正确的做法,我们应该是结合项目的实际情况,选择对应的安全策略。例如,如果我们需要开启脚本文件加载,但是只限于Jenkins服务器上托管的CSS文件,那么就可以采用如下配置。

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; style-src 'self';")

HTML Report报告无法正常展示的解决办法相关推荐

  1. IBM AppScan 安全扫描报告中部分问题的解决办法

    IBM AppScan 安全扫描:加密会话(SSL)Cookie 中缺少 Secure 属性处理办法 原因分析: 服务器开启了Https时,cookie的Secure属性应设为true: 解决办法: ...

  2. AIMS 2013中的性能报告工具不能运行的解决办法

    在AIMS 2013中,最引人注意的新功能之一就是提供了性能报告分析工具,通过这个工具,你可以分析当前地图的每一个图层的渲染时间,从而找到性能瓶颈,这样才能使性能调优工作有的放矢.这个性能报告工具包含 ...

  3. apk 打包 java出错_AndroidApk混淆编译时,报告java.io.IOException...错误解决办法

    在混淆编译之前,我的程序可以正常运行,混淆编译时,报告如下错误: Error:Execution failed for task ':gviews:transformClassesAndResourc ...

  4. oracle命令报01034,ORA-01034错误的解决办法-数据库专栏,ORACLE

    ora-01034错误的解决办法 --oracle常见错误之一 事先说明,oracle高手是不需要看本文的. 这是个oracle数据库服务器比较常见的错误.有经验的用户几乎马上就能解决这个错误,再不济 ...

  5. 报错(SQLite 3.8.3 or later is required (found 3.7.17).)的解决办法

    在服务器上刚部署完Django项目,python manage.py runserver 0.0.0.0:8000启动启动的时候报错:django.core.exceptions.Improperly ...

  6. 使用 UI Flow 从O365管理界面下载报告时遇到的问题和解决办法

    最近需要定期从O365拉报告做数据分析,在尝试使用 UI Fow 自动抓取数据的过程中遇到了几个问题,在此记录一下并分享解决办法. 首先,以电子邮件的用户活动报告为例,介绍一下之前手工拉取报告的操作步 ...

  7. mac 上格式化移动硬盘出现MediaKit报告设备上的空间不足以执行请求的解决办法

    突发奇想的想用自己的移动硬盘给Mac电脑做备份,但是硬盘格式不对,就手贱点了抹掉.后来提示mac 上格式化移动硬盘出现MediaKit报告设备上的空间不足以执行请求的解决办法.网上找了好久没有找到解决 ...

  8. 在 Win7 下安装 KB4512506 补丁报告 0x80092004 错误的解决办法

    在 2019 年 8 月 13 日,微软公司披露了两个远程桌面服务中存在的远程代码执行安全漏洞,编号分别为 CVE-2019-1181 和 CVE-2019-1182.相关网址是: https://p ...

  9. word出现错误报告的解决办法

    打开word的时候,提示错误,询问是否发送报告及进去word的安全模式下(如图)ps:此图来自百度,我相信我的桌面不会是这么的幼稚,哈哈 解决办法: 可以按如下步骤操作删除Normal.dot: 1. ...

  10. 宽带连接连接被远程计算机终止win10,Win10宽带无法连接提示“调制解调器报告了一个错误”怎么解决?...

    Win10宽带无法连接提示"调制解调器报告了一个错误"怎么解决?最近一位Win10用户遇到宽带无法连接的情况,系统提示"调制解调器(或其他连接设备)报告了一个错误.&qu ...

最新文章

  1. BFS:图的最短路径  Aizu - 0558 ​​​​​​​Cheese
  2. python—OpenCV2中 cv2.VideoCapture(),read(),waitKey()的使用
  3. 《JAVA练习题目11》学生类有属性姓名(字符串类型)和选修课程信息(ArrayList<Course>对象)两个属性,和三个方法
  4. linux sql server硬件要求,SQL Server On Linux(20)—— SQL Server On Linux性能(6)——针对性能的配置(Linux层面)...
  5. MySQL ACID及四种隔离级别的解释
  6. 独占一行 html_HTML基础-语义化标签
  7. Qt5 提示:无法启动此程序,计算机丢失Qt5Widgetsd.dll的解决方法
  8. 直播电商都用上 AI 实时翻译了!歪果仁也能听懂李佳琦
  9. 学业奖惩系统c语言,c语言成绩管理系统(完整).doc
  10. STM32F407——蓝牙模块CC2541
  11. vue3中json编辑器
  12. stm32 红外遥控实现
  13. 用java怎么做中国象棋的小游戏_java开发中国象棋小游戏
  14. 四川取消英语计算机考试,2020年起,四川将不再承接全国英语等级考试,已有多省份停考!...
  15. 5G关键技术与系统演进pdf
  16. uniApp App端跳转到深色页面闪白记录及优化处理方法
  17. 自从收了这些Python库 头发都不脱了!
  18. 怎样成为一名优秀的平面设计师
  19. 个子矮s弯如何看点打方向图解_s弯如何看点打方向盘
  20. RecyclerView 配合 DiffUtil,RecyclerView局部刷新

热门文章

  1. CNKI知网查重账号和密码怎么申请
  2. 如何把照片转成pdf文件,支持合并转换
  3. 计算机专业英文面试,计算机专业面试英文自我介绍
  4. cad单位_原来CAD的线条还可以这样加粗!还能修改初始单位!太实用了
  5. STM32外设驱动库分析与实现
  6. 怎样裁切图片?如何将图片剪裁成需要的大小?
  7. Python 断言的使用
  8. windows webrtc 如何实现桌面共享
  9. 基于ATtiny85制作MIDI数字音乐盒
  10. PS可以快速批量修改图片尺寸吗?