我打算在我的JMeter中创建测试计划,如下所示
我想全天候运行测试。 如果一个(或多个)HTTP请求采样器出于任何原因返回错误,则执行SMTP采样器并向我发送电子邮件。
如果HTTP请求采样器都没有返回错误,则不要执行SMTP采样器,而是永远重复循环。
我不太了解if控制器条件$ {JMeterThread.last_sample_ok}。
JMeterThread.last_sample_ok 是什么意思?
Last_sample_ok仅表示最后一个HTTP请求采样器(在我的情况下仅限HTTP Request Sampler 8)?如果我想检查每个采样器1-8的条件,可以在这做什么?
JMeterThread 是JMeter Java类还是Java对象?
感谢。
答案 0 :(得分:2)
JMeterThread.last_sample_ok是 JMeterThread 类的静态String字段。
JMeterThread 类源代码中的这一行显示LAST_SAMPLE_OK将设置为parent.isSuccessful()布尔变量的String表示形式,其中 parent 是SampleResult对象:
threadContext.getVariables().put(LAST_SAMPLE_OK, Boolean.toString(parent.isSuccessful()));
基本上,LAST_SAMPLE_OK将指示最后一个样本是否成功(直到它被下一个采样器重置)。
是的,如果JMeterThread.last_sample_ok为true,则最后一个采样器成功。在您的情况下,它是HTTP请求采样器8。
您可以将所有 HTTP采样器添加为事务控制器的子项,然后选中“生成父样本”复选框。
这将使JMeter为事务控制器的所有内部样本生成父样本。如果其中一个子采样器出现故障,父样本也将失败。
在交易控制器后面添加如果控制器。
现在JMeterThread.last_sample_ok将与生成的父样本相关。
JMeterThread 是class in the org.apache.jmeter.threads package 。
答案 1 :(得分:0)
您可以这样做的一种方法是使用Jenkins Email Extension Plugin,您可以将其设置为在构建失败时通过电子邮件发送给您。 (因此,当脚本的HTTP请求失败时,您可能会失败构建。)
https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin