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

如何将Jenkins生成的性能报告嵌入邮件正文?图片失效且无法改配置

Jenkins负载测试报告图片嵌入邮件的替代方案

方案1:Base64编码内嵌图片

将图片转成Base64编码后直接嵌入HTML邮件正文,无需依赖外部链接,彻底解决图片加载失败问题:

  • 在Pipeline中通过shell命令生成图片的Base64编码字符串
  • 在邮件HTML的img标签中使用data:image/[格式];base64,[编码内容]作为src值

示例Pipeline代码片段:

// 获取图片Base64编码
def imageBase64 = sh(script: 'base64 -w 0 ./reports/performance-chart.png', returnStdout: true).trim()

// 构建邮件HTML内容
def emailContent = """
<h3>负载测试性能报告</h3>
<p>核心指标可视化:</p>
<img alt="性能指标趋势图" src="data:image/png;base64,${imageBase64}" style="width:80%;" />
"""

// 发送HTML格式邮件(以emailext插件为例)
emailext(
    to: 'test-team@example.com',
    subject: '[Jenkins] 负载测试完成:性能报告',
    body: emailContent,
    mimeType: 'text/html'
)

方案2:通过CID引用邮件附件图片

将图片作为邮件附件发送,同时在正文用Content-ID(CID)引用附件,无需外部URL:

  • 配置邮件插件添加图片附件
  • 在img标签的src中使用cid:[图片文件名]

示例Pipeline代码片段:

def emailContent = """
<h3>负载测试性能报告</h3>
<p>以下是本次测试的性能指标图:</p>
<img alt="性能汇总图" src="cid:performance-summary.png" />
"""

emailext(
    to: 'test-team@example.com',
    subject: '[Jenkins] 负载测试性能报告',
    body: emailContent,
    attachmentsPattern: './reports/performance-summary.png',
    mimeType: 'text/html'
)

注:主流邮件客户端(Outlook、Gmail、腾讯邮箱)均支持CID引用,少数小众客户端可能存在兼容性问题。

方案3:用文本/表格展示核心指标

如果图片嵌入始终有问题,可直接提取报告中的关键性能数据,用HTML表格展示在正文,避免图片依赖:

  • 从测试报告文件(如JSON、XML)中提取核心指标(平均响应时间、峰值TPS、错误率等)
  • 拼接成HTML表格嵌入邮件正文

示例Pipeline代码片段:

// 假设从JSON报告中提取数据(需提前安装jq工具)
def avgRespTime = sh(script: 'cat ./reports/performance.json | jq -r ".statistics.avg_response_time"', returnStdout: true).trim()
def peakTps = sh(script: 'cat ./reports/performance.json | jq -r ".statistics.peak_tps"', returnStdout: true).trim()
def errorRate = sh(script: 'cat ./reports/performance.json | jq -r ".statistics.error_rate"', returnStdout: true).trim()

def emailContent = """
<h3>负载测试核心指标汇总</h3>
<table border="1" cellpadding="8" cellspacing="0">
    <tr><th>指标项</th><th>测试结果</th></tr>
    <tr><td>平均响应时间</td><td>${avgRespTime} ms</td></tr>
    <tr><td>峰值TPS</td><td>${peakTps}</td></tr>
    <tr><td>请求错误率</td><td>${errorRate} %</td></tr>
</table>
"""

emailext(
    to: 'test-team@example.com',
    subject: '[Jenkins] 负载测试核心指标',
    body: emailContent,
    mimeType: 'text/html'
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:30:47