Jenkins pipeline中HTML Publisher plugin的使用及css样式表无法显示问题解决

247 篇文章 0 订阅
183 篇文章 0 订阅

软件测试面试刷题,这个小程序(永久刷题),靠它可以快速找到工作!https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502

项目中需要为Jenkins构建生成一个html的报告,往上搜到的教程都是针对旧的“自由风格的软件项目”的教程,没有针对pipeline流水线工程的教程,自己参照HTML Publisher插件的官方文档进行了实现,总结一下相关的步骤以备后续参考:

Jenkins的HTML Publisher插件在流水线工程pipeline中的groovy脚本中也可以使用,例如:groovy脚本中写如下代码

publishHTML (target : [allowMissing: false,
 alwaysLinkToLastBuild: true,
 keepAll: true,
 reportDir: '/home/jenkins/reports/${JOB_BASE_NAME}_${BUILD_NUMBER}',
 reportFiles: 'report.html',
 reportName: '覆盖率报告',
 reportTitles: '覆盖率报告'])

这个流程会把/home/jenkins/reports/${JOB_BASE_NAME}_${BUILD_NUMBER}目录下的report.html拷贝到该构建的html报告目录,在构建左侧边栏展示一个测试报告的链接,可以点击查看测试报告。使用job名以及构建号作为html报告目录,可以保证并发构建下,html报告内容不会被踩。

  • target配置涉及到的参数含义说明:
    • reportName : String 要为构建/项目显示的报告的名称,该名称会展示到每一个构建或者项目的左侧边栏
    • reportDir : String 相对于工作空间的HTML报告目录的路径, 实测既可以是相对路径, 也可以是绝对路径
    • reportFiles : String html报告的文件名,reportDir目录下的reportFiles会被拷贝到构建的报告路径
    • keepAll : boolean 如果选中,则存档所有成功构建的报告,否则只存档最近的报告
    • alwaysLinkToLastBuild : boolean 如果选中此控件和“保留过去的HTML报告”,即使构建失败,也要在项目级别发布链接
    • allowMissing : boolean 如果选中,将允许丢失报告,并且构建不会因丢失报告而失败
    • escapeUnderscores : boolean (optional) 如果选中,在存储到磁盘上时,报告标题中的下划线将被转义为'_5f'。如果不加以控制,他们将无法逃脱。
    • includes : String (optional)
    • reportTitles : String (optional) 报告文件的可选标题,将用作选项卡名称。如果没有提供,将使用文件名代替
    • useWrapperFileDirectly : boolean (optional) 默认情况下,每次存档报表访问都会生成一个新的包装器文件。如果选中,将使用遗留包装器文件,而不是每次生成它。必须仅在包装器文件被转换并使用校验和保存时使用

遇到的问题

提示目录不存在

  • 报错信息

    ERROR: Directory '/home/jenkins/reports/test_520 exits but failed copying to xxxx

  • 原因

    生成html报告的目录jenkins节点与执行这段groovy代码的jenkins节点不是同一个节点,必须在同一个节点执行才可以,否则找不到目录

html报告中使用的css样式表无法显示

  • 原因

    jenkins默认的安全策略,为了安全限制了css的展示,详细信息可以参考: www.jenkins.io/doc/book/se…

  • 解决

    • 临时解决

在Jenkins “系统管理” -> “Script Console脚本命令行” 执行

不设置安全策略:

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

设置后, 后续的构建生成的报告就可以正常展示

其他相关命令:

设置自定义安全策略:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-same-origin; default-src 'self';")

恢复安全策略到默认设置

System.clearProperty("hudson.model.DirectoryBrowserSupport.CSP")

获取当前设置的策略

System.getProperty("hudson.model.DirectoryBrowserSupport.CSP")
  • 永久解决

官方文档给出: If its value is the empty string, e.g. java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war then the header will not be sent at all.

我安装的Jenkins已经是通过systemctl管理jenkins服务的版本,通过修改/usr/lib/systemd/system/jenkins.service, 在Environment="JAVA_OPS=-Djava.awt.headless=true后面加上 -Dhudson.model.DirectoryBrowserSupport.CSP=

然后systemctl daemon-reload重新加载配置,再systemctl restart jenkins。然后齐活儿!

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值