如何查看Docker容器内Jenkins Robot Framework插件的报告?
解决Docker化Jenkins中Robot Framework报告的浏览器访问问题
方案1:利用Jenkins工件归档+内置访问路径
- 构建后把
log.html和report.html归档为Jenkins工件- 在Jenkinsfile(或自由风格项目的构建后步骤)里添加归档配置:
(如果是CasC配置,可在项目配置的post { always { archiveArtifacts artifacts: '**/log.html, **/report.html', fingerprint: true } }postBuilders节点中对应添加归档步骤)
- 在Jenkinsfile(或自由风格项目的构建后步骤)里添加归档配置:
- 归档完成后,直接从Jenkins构建页面访问:进入对应构建的详情页,点击左侧菜单的工件,就能找到这两个HTML文件,点击即可直接在浏览器打开——Jenkins会自动处理容器内文件的访问转发,无需额外配置。
方案2:使用Robot Framework插件的内置报告入口
Robot Framework插件本身在Jenkins构建页面提供了专属的报告入口,无需直接访问HTML文件:
- 构建完成后,进入对应构建的详情页,左侧菜单会出现Robot Framework Report和Robot Framework Log选项,点击就能直接查看格式化后的报告,完全绕开文件路径变化的问题。
方案3:挂载容器报告目录到宿主机+Nginx动态路径配置
如果坚持要用Nginx代理访问,可通过正则匹配解决构建编号动态变化的问题:
- 第一步:修改Jenkins容器启动命令,把Robot报告的生成目录挂载到宿主机。假设容器内报告生成在
/var/jenkins_home/workspace/<项目名>/output/,挂载到宿主机/jenkins-reports/:
(注意替换docker run -d -p 8080:8080 -v /jenkins-reports/:/var/jenkins_home/workspace/<项目名>/output/ jenkins/jenkins:lts<项目名>为实际项目名称,同时在CasC配置中确保Robot的报告输出路径指向这个挂载目录) - 第二步:配置Nginx的location规则,用正则匹配构建编号:
配置完成后,访问server { listen 80; server_name your-ip; location ~ ^/reports/(\d+)/ { alias /jenkins-reports/$1/; index log.html report.html; autoindex on; # 可选,开启目录浏览方便查找报告 } }http://<你的IP>/reports/<构建编号>/log.html就能直接打开对应构建的报告。
方案4:使用Jenkins HTML Publisher插件
- 安装HTML Publisher插件后,在构建后步骤添加Publish HTML reports配置:
- 设置
HTML directory to archive为报告所在的容器内路径(比如output/) - 设置
Index page[s]为log.html, report.html - 勾选Allow untrusted HTML(如果报告包含动态渲染内容)
- 设置
- 配置完成后,构建详情页左侧会出现HTML Report入口,点击即可查看报告,Jenkins会负责处理容器内文件的访问逻辑。
内容的提问来源于stack exchange,提问作者sohmahmood
相关产品推荐
相关产品推荐

