automation - 如何为 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 请求采样器返回错误,我想给我发送一封电子邮件。请帮忙。
谢谢。
解决方案
JMeter 会倒置执行采样器,因此如果您只在之后拥有 If Controller HTTP Request Sampler 8
- 它只会检查HTTP Request Sampler 8 结果,之前的失败将被默默忽略。
解决方案在:
- 复制并粘贴您的 If Controller 以显示在您要检查的每个HTTP 请求采样器之后
- 与第 1 点基本相同,但使用模块控制器而不是复制和粘贴 If 控制器
- 将此 If Controller 和 SMTP Sampler 组合替换为单个JSR223 PostProcessor,您已经拥有的条件和发送电子邮件的代码可以在Send Email.groovy文件中找到。PostProcessors 根据JMeter 范围规则运行,因此单个实例将应用于其级别的所有采样器。
推荐阅读
- machine-learning - 为什么在我训练有素的 SVM 中,其中一个功能支配了所有其他功能?
- python - pack_forget 产生奇怪的闪烁并且没有完全隐藏小部件?
- swift - 在结构中创建变量并访问同一结构中的变量
- ssl - 使用 Elixir 和 Erlang ssl 模块获取 SSL 证书
- python-3.x - 在 Pandas DataFrame 对象中是否提供 Excel 工作表名称?
- sql - 如何将一组 DISTINCT 列数据复制到新表中并将新数据的 ID 写回第一个表
- python - 保存标记为越来越多的文件
- java - 为什么我的 JavaFX 项目无法导入库,即使我可以看到它们?
- node.js - No matching version found for gatling@^2.0.0
- r - R 中带有 rmgarch 包的 ADCC GARCH 模型的不对称参数