jenkins教程4-运行python项目自动生成HTML报告
前言:
pytest脚本运行可以生成html的报告,jenkins上有生成html报告的插件,运行完成后直接在jenkins上显示
1、安装插件:HTML Publisher
路径:系统管理-插件管理-可选插件,搜索:HTML Publisher
2、构建配置:构建 > 执行shell
执行shell里面配置生成pytest的报告,运行完成后在当前目录下生成一个report.html报告
pytest test_demo.py --html=report/result.html --self-contained-html
3、构建配置:构建后操作
选择 Publish HTML reports插件
添加 Reports 报告配置
- HTML directory to archive 是上面生成html报告的文件夹地址:report
- Index page[s] 报告的名称:result.html
- Report title 显示在jenkins左侧的名称,默认:HTML Report
4、生成报告
构建成功后就可以看到生成的HTML Report
查看报告显示丢失了css样式
5、临时 加载css样式 方法:脚本命令行
在jenkins->系统管理->脚本命令行,输入以下命令
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
执行完成后,需要重新构建下job才会生效。但是这种办法只是一个临时解决方案,重启jenkins后,这个问题又会出现
6、永久 加载css样式 方法:Groovy 插件
要解决上面的问题,需要安装 Startup Trigger 和 Groovy 插件
构建触发器:勾选 Build when job nodes start
构建:增加 Execute system Groovy script
拓展:HTML报告加载CSS、JS失败
原因:Jenkins为了避免受到恶意HTML/JS文件的攻击, 会默认将安全策略CSP设置为:sandbox; default-src ‘none’; img-src ‘self’; style-src ‘self’;
在此配置下,只允许加载:
-
Jenkins服务器上托管的CSS文件
-
Jenkins服务器上托管的图片文件
-
以下形式的内容都会被禁止:
-
JavaScript
-
plugins (object/embed)
-
HTML中的内联样式表(Inline style sheets),以及引用的外站CSS文件
-
HTML中的内联图片(Inline image definitions),以及外站引用的图片文件
-
frames
-
web fonts
-
XHR/AJAX