ant+Jmeter+jenkins接口自动化,如何实现把执行失败的接口信息单独发邮件?

发布于:2025-06-26 ⋅ 阅读:(19) ⋅ 点赞:(0)

B站讲的最好的自动化测试教程,工具+框架附项目实战一套速通,零基础完全轻松掌握!自动化测试课程、web/app/接口

实现Ant+JMeter+Jenkins接口自动化失败接口邮件通知方案

要实现只发送执行失败的接口信息邮件通知,可以通过以下步骤实现:

方案概述

  1. 使用JMeter执行测试并生成结果报告
  2. 使用Ant解析JMeter结果,提取失败用例
  3. 配置Jenkins邮件通知,只包含失败信息

详细实现步骤

1. 配置JMeter测试计划

  • 确保测试计划中启用了"Save Responses to a file"选项
  • 配置合适的监听器(如"View Results Tree"或"Summary Report")

2. 创建Ant构建文件(build.xml)

xml
<project name="JMeter-Test" default="run" basedir=".">
<property name="jmeter.home" value="/path/to/jmeter"/>
<property name="report.dir" value="${basedir}/report"/>
<property name="failure.report.file" value="${report.dir}/failures.txt"/>
<target name="run">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/> <jmeter jmeterhome="${jmeter.home}" resultlog="${report.dir}/results.jtl">
<testplans dir="${basedir}" includes="*.jmx"/>
</jmeter>
<!-- 提取失败用例 -->
<xslt in="${report.dir}/results.jtl" out="${report.dir}/report.html" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"/>
<!-- 生成失败报告 -->
<script language="javascript">
<![CDATA[
importPackage(http://java.io);

var logFile = new File(project.getProperty("report.dir") + "/results.jtl");
var failureFile = new File(project.getProperty("failure.report.file"));
var writer = new PrintWriter(new FileWriter(failureFile));
if (logFile.exists()) {


var reader = new BufferedReader(new FileReader(logFile));
var line;
var hasFailures = false;

// 跳过第一行(标题行)
reader.readLine();
while ((line = reader.readLine()) != null) {
var fields = line.split(",");
// 检查是否失败(字段8为success标志)
if (fields.length > 8 && "false".equals(fields[8].toLowerCase())) { hasFailures = true;
writer.println("失败接口: " + fields[2]); // 字段2是标签/接口名
writer.println("响应码: " + fields[3]);
writer.println("响应消息: " + fields[4]);
writer.println("失败原因: " + fields[9]);
writer.println("------------------------");
}
}
reader.close();
if (!hasFailures)
{
writer.println("所有接口测试通过,无失败用例");
}
}else {
writer.println("未找到测试结果文件");
}
writer.close();
]]>
</script>
</target>
</project>

3. 配置Jenkins任务

  1. 创建自由风格项目
  2. 添加构建步骤:"Invoke Ant"
  3. 配置Ant构建文件路径和目标
  4. 添加构建后操作:"Editable Email Notification"

4. 配置Jenkins邮件通知

在"Editable Email Notification"配置中:

  1. 设置收件人列表
  2. 在"Attachments"中添加:report/failures.txt
  3. 配置邮件内容模板,例如:

text
构建项目: ${PROJECT_NAME} 构建编号: ${BUILD_NUMBER} 构建状态: ${BUILD_STATUS} 失败接口详情见附件或如下内容: ${FILE,path="report/failures.txt"}

  1. 设置触发条件:"Failure"和"Unstable"

5. 高级配置(可选)

  • 可以修改Ant脚本生成更详细的HTML格式失败报告
  • 可以配置Jenkins只在失败时发送邮件:
    • 在"Advanced Settings"中设置"Send To"为"Recipient List"
    • 勾选"Send email for every unstable build"和"Send separate emails to individuals who broke the build"

替代方案

如果不想使用Ant解析结果,也可以:

  1. 使用JMeter的"SMTP Sampler"在测试计划中直接发送失败通知
  2. 使用Jenkins的"JMeter Plugin",它自带失败分析功能
  3. 使用JMeter的"OS Process Sampler"调用外部脚本处理结果

注意事项

  1. 确保Jenkins服务器可以访问邮件服务器
  2. 测试结果文件路径要正确配置
  3. 根据实际JMeter结果格式调整字段索引
  4. 对于大型测试,考虑性能影响

这种方案能够实现只发送失败接口信息,帮助团队快速定位问题而不被成功用例干扰。


网站公告

今日签到

点亮在社区的每一天
去签到