You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins中RobotFramework log.html无法显示截图问题咨询

Jenkins中log.html无法显示截图但本地正常的原因及解决办法

核心原因

  • 路径引用不兼容:本地打开log.html时,截图用的是本地文件系统路径(比如file:///xxx/screenshot.png),但Jenkins网页访问时,浏览器无法直接读取服务器本地文件,这种路径在网页环境下无效。
  • Jenkins安全策略限制:默认的Content-Security-Policy(CSP)规则会阻止加载file://协议的资源,或者限制非Jenkins托管的静态资源访问。
  • 测试报告生成配置错误:你用的测试报告工具(如Allure、ExtentReport)生成报告时,没有将截图路径转换为Jenkins可通过HTTP访问的相对路径,依然保留本地路径格式。

对应的解决办法

  • 配置HTML报告发布插件:
    在Jenkins任务中安装并配置「Publish HTML reports」插件,将报告目录设置为你生成log.html的路径,勾选「Allow directory listing」和「Use project name as prefix」。同时在测试代码中,将截图保存到Jenkins工作区的子目录(比如${WORKSPACE}/screenshots),报告中引用截图时使用相对路径(如./screenshots/xxx.png),让Jenkins将这些文件作为静态资源提供访问。
  • 调整Jenkins的CSP规则(测试环境适用):
    进入Jenkins「管理 Jenkins」→「脚本控制台」,执行以下Groovy命令临时修改CSP:
    System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:;")
    
    注意:该操作会降低Jenkins的安全性,生产环境需谨慎使用,建议优先通过路径配置解决问题。
  • 修正测试报告工具的路径配置:
    以ExtentReport为例,在生成报告时设置资源路径为工作区内的截图目录:
    ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter("log.html");
    htmlReporter.config().setResourcePath("./screenshots/");
    
    确保报告中生成的截图引用路径是相对于log.html的相对路径,而非本地绝对路径。

内容的提问来源于stack exchange,提问作者Skybright

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 11:31:13