我正在使用Testcafe进行项目测试,并在项目中生成带有屏幕截图和视频的HTML报告。
[当我尝试使用HTML发布者发布报告时,该视频无法播放。当我通过浏览器在Jenkins代理中打开生成的HTML文件时,视频可以正常播放。不确定,为什么它不能在Jenkins HTML Publisher插件上播放。
我的HTML视频代码如下所示
<div class="row">
<div class="column">
<img id="myImg" class="errImage" src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAABAAAA" style="width:100%;">
</div>
<div class="column">
<video autoplay muted loop controls id="errorVideo" style="width:99%">
<source src="C:\Program Files (x86)\Jenkins\workspace\Free style node test\e2e\artifacts\videos\Getting Started\My First Test\1.mp4" type="video/mp4">
</video>
</div>
</div>
Jenkins HTML Publisher的报告屏幕截图:
通过浏览器的报告屏幕截图:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; default-src '';")
不确定是什么政策阻止了视频在Jenkins发布者上的播放。
有人可以帮助解决此问题吗?提前致谢。
阻止视频播放的策略是media-src ==“ none”,源自default-src =='none'(请参阅https://wiki.jenkins.io/display/JENKINS/Configuring+Content+Security+Policy)
[查看https://github.com/jenkinsci/screenrecorder-plugin/blob/master/src/main/java/org/jenkinsci/plugins/screenrecorder/ScreenRecorderBuildWrapper.java中的解决方案,它可能对您有用:
String curCsp = System.getProperty("hudson.model.DirectoryBrowserSupport.CSP","");
if (!curCsp.contains("media-src"))
{
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", curCsp + ";media-src 'self';");
}