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

Jenkins email-ext插件发送Robot Framework日志内容失败求助

解决Robot Framework报告嵌入Jenkins邮件显示失败的问题

我之前踩过一模一样的坑!为啥邮件里会显示"Opening Robot Framework log failed"?核心原因是Robot生成的log.html和report.html依赖本地相对路径的CSS、JS资源——这些文件在Jenkins服务器上是存在的,但直接把HTML内容塞进邮件后,邮件客户端根本找不到这些外部资源,自然加载失败。

下面给你几个靠谱的解决办法,按实用性排序:

方法1:生成自包含的内联资源报告(最推荐)

Robot Framework 4.0及以上版本的rebot命令自带了--inline参数,能把所有CSS、JS脚本直接嵌入到HTML文件里,生成完全独立的报告,没有任何外部依赖。

步骤超简单:

  • 修改Jenkins里的Robot执行命令,在rebot阶段加上--inline参数:
    rebot --inline --outputdir ./results ./results/output.xml
    
  • 这样生成的log.html和report.html就是"自给自足"的,直接用email-ext读取它们的内容作为邮件正文,邮件客户端就能正常显示所有样式和交互了。

如果你的Robot版本低于4.0,也可以用Node.js的html-inline工具来事后处理报告:

  1. 先全局安装工具:
    npm install -g html-inline
    
  2. 在Jenkins构建步骤里,生成原始报告后执行:
    html-inline ./results/log.html > ./results/inline_log.html
    html-inline ./results/report.html > ./results/inline_report.html
    
  3. 最后让email-ext读取inline_log.html的内容作为邮件正文就行。

方法2:用email-ext的资源转换功能

email-ext插件本身就支持处理HTML里的外部资源——它能把HTML引用的CSS/JS转换成邮件附件,同时自动修改HTML里的资源路径,让邮件客户端能加载到这些附件。

配置步骤:

  1. 在Jenkins的email-ext配置中,选择邮件格式为HTML。
  2. 找到并勾选"Convert HTML resources to attachments"选项。
  3. 在邮件正文区域,用${FILE,path="${WORKSPACE}/results/log.html"}来嵌入报告内容(注意用绝对路径,避免找不到文件)。
  4. 发送测试邮件,你会发现邮件附带了几个小附件(就是那些CSS/JS文件),但正文里的报告能正常显示了。

方法3:折中方案——在邮件里放Jenkins报告链接

如果上面两种方法都不想折腾,也可以直接在邮件里放Jenkins上报告的直接访问链接,让收件人点击查看:

Robot Framework测试结果:

  • 测试报告
  • 详细日志
    这个方法最省事,但不符合你"以邮件内容形式发送"的需求,不过作为备选方案也挺实用的。

最后提个小注意点:确保Jenkins的构建用户有读取报告文件的权限,而且email-ext引用文件时最好用${WORKSPACE}变量来拼接绝对路径,避免因相对路径导致找不到文件的问题。

内容的提问来源于stack exchange,提问作者S.C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:41:02