【发布时间】:2015-12-01 10:38:31
【问题描述】:
我是 Jmeter 的新手。 我有一个任务,我想发送一封断言结果失败的电子邮件。 我有一个 http 请求,我正在检查 API 的结果,如果它包含适当的响应,则测试成功。 现在的问题是,如果测试失败,我需要通过电子邮件发送结果(带有失败消息)。 我已经正确配置了 SMTP Sampler,它正在发送邮件。但我不知道如何将响应断言失败消息作为消息正文与该电子邮件一起发送。 有人可以帮忙吗?
【问题讨论】:
标签: jmeter
我是 Jmeter 的新手。 我有一个任务,我想发送一封断言结果失败的电子邮件。 我有一个 http 请求,我正在检查 API 的结果,如果它包含适当的响应,则测试成功。 现在的问题是,如果测试失败,我需要通过电子邮件发送结果(带有失败消息)。 我已经正确配置了 SMTP Sampler,它正在发送邮件。但我不知道如何将响应断言失败消息作为消息正文与该电子邮件一起发送。 有人可以帮忙吗?
【问题讨论】:
标签: jmeter
您可以使用Beanshell PreProcessor 来从前一个采样器中获取断言失败消息。
将以下代码放入预处理器的“脚本”区域:
import org.apache.jmeter.assertions.AssertionResult;
AssertionResult[] results = prev.getAssertionResults();
StringBuilder body = new StringBuilder();
for (AssertionResult result : results) {
body.append(result.getFailureMessage());
body.append(System.getProperty("line.separator"));
}
vars.put("body", body.toString());
${body} JMeter 变量。 请记住,它仅适用于上一个采样器的断言失败消息
有关 JMeter 测试中的 Beanshell 脚本的更多信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component 指南。
【讨论】:
!${JMeterThread.last_sample_ok} - 它使用预定义的变量,如果前一个采样器成功则返回“true”,否则返回“false”。详情见How to Use JMeter's 'IF' Controller and get Pie文章
IfController 必须是 SMTP Sampler 的父级。