首页 > 解决方案 > 如何为 JMETER 中每个失败的 HTTP 请求采样器发送邮件?

问题描述

我计划在我的 JMeter 中创建一个测试计划,如下所示

测试计划线程组

HTTP Request Sampler 1
HTTP Request Sampler 2
HTTP Request Sampler 3
HTTP Request Sampler 4
HTTP Request Sampler 5
HTTP Request Sampler 6
HTTP Request Sampler 7
HTTP Request Sampler 8

如果控制器条件
${__groovy(vars.get("JMeterThread.last_sample_ok").equals("false"),)}

SMTP 采样器

我想 24/7 运行测试。如果一个(或多个)HTTP 请求采样器由于某种原因返回错误,则执行 SMTP 采样器并向我发送电子邮件。

我想检查每个采样器 1-8 的状况。但是现在如果 HTTP Request Sampler 4 和 HTTP Request Sampler 8 都失败了,JMeter 只会为 HTTP Request Sampler 8 发送一封电子邮件。

如果没有一个 HTTP 请求采样器返回错误,我想给我发送一封电子邮件。请帮忙。

谢谢。

标签: automationjmeter

解决方案


JMeter 会倒置执行采样器,因此如果您只在之后拥有 If Controller HTTP Request Sampler 8- 它只会检查HTTP Request Sampler 8 结果,之前的失败将被默默忽略。

解决方案在:

  1. 复制并粘贴您的 If Controller 以显示在您要检查的每个HTTP 请求采样器之后
  2. 与第 1 点基本相同,但使用模块控制器而不是复制和粘贴 If 控制器
  3. 将此 If Controller 和 SMTP Sampler 组合替换为单个JSR223 PostProcessor,您已经拥有的条件和发送电子邮件的代码可以在Send Email.groovy文件中找到。PostProcessors 根据JMeter 范围规则运行,因此单个实​​例将应用于其级别的所有采样器。

推荐阅读