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

Jenkins(Jetty)中Extent Report截图404无法显示问题求助

解决方案:Extent Report截图在Jenkins端404的排查与修复

1. 检查HTML Publisher插件配置

  • 确保HTML Publisher的HTML directory to archive设置为包含报告和截图的相对路径(如target/extent-reports),同时勾选Allow script access选项,避免脚本和资源加载被限制。
  • 不要使用绝对路径,Jenkins会基于工作区自动解析相对路径。

2. 修复工作区文件权限

  • 登录CentOS机器,检查截图文件的权限:
    ls -l /var/lib/jenkins/workspace/你的项目名/截图文件名.png
    
  • 确保Jenkins运行用户(默认jenkins)对截图和报告目录有读权限,权限不足时执行:
    chown -R jenkins:jenkins /var/lib/jenkins/workspace/你的项目名/
    chmod -R 755 /var/lib/jenkins/workspace/你的项目名/extent-reports/
    

3. 修正截图引用路径

  • 打开生成的HTML报告,检查截图的src属性是否为相对路径(如./screenshot.png),而非本地绝对路径。
  • 若代码中用了绝对路径,修改Selenium生成截图的逻辑,改用基于报告输出目录的相对路径:
    String screenshotPath = "./screenshot_" + System.currentTimeMillis() + ".png";
    File screenshotFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
    Files.copy(screenshotFile.toPath(), Paths.get(screenshotPath));
    extentTest.addScreenCaptureFromPath(screenshotPath);
    

4. 调整Jetty资源访问配置

  • 编辑Jenkins启动脚本(如/etc/init.d/jenkins或jenkins.service),在JVM参数中添加:
    JAVA_OPTS="-Dhudson.model.DirectoryBrowserSupport.CSP= -Djetty.servlet.Default.dirAllowed=true"
    
  • 重启Jenkins服务:
    systemctl restart jenkins
    
  • 该配置允许Jetty直接访问工作区静态资源,避免路径拦截。

5. 分析Jetty日志定位问题

  • 查看Jenkins日志(默认路径/var/log/jenkins/jenkins.log),搜索404请求记录:
    grep "404" /var/log/jenkins/jenkins.log
    
  • 根据日志里的请求路径,确认Jenkins是否在错误的目录下查找截图,比如路径层级是否匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:35:20