Java JMeter在其中一个HTTP请求失败时发送电子邮件

Java JMeter在其中一个HTTP请求失败时发送电子邮件,java,if-statement,jmeter,performance-testing,Java,If Statement,Jmeter,Performance Testing,我计划在JMeter中创建测试计划,如下所示 测试计划 螺纹组 回路控制器 HTTP请求采样器1 HTTP请求采样器2 HTTP请求采样器3 HTTP请求采样器4 HTTP请求采样器5 HTTP请求采样器6 HTTP请求采样器7 HTTP请求采样器8 如果控制器条件${JMeterThread.last_sample_ok}==false SMTP采样器 我想全天候运行测试。 如果一个(或多个)HTTP请求采样器由于任何原因返回错误,则执行SMTP采样器并向我发送电子邮件 如果没

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

  • 测试计划
  • 螺纹组
    • 回路控制器
      • HTTP请求采样器1
      • HTTP请求采样器2
      • HTTP请求采样器3
      • HTTP请求采样器4
      • HTTP请求采样器5
      • HTTP请求采样器6
      • HTTP请求采样器7
      • HTTP请求采样器8
    • 如果控制器条件${JMeterThread.last_sample_ok}==false
      • SMTP采样器
我想全天候运行测试。 如果一个(或多个)HTTP请求采样器由于任何原因返回错误,则执行SMTP采样器并向我发送电子邮件

如果没有HTTP请求采样器返回错误,则不要执行SMTP采样器,而是永远重复循环

我不太理解if控制器条件${JMeterThread.last_sample_ok}

  • JMeterThread.last_sample_ok是什么意思?
    Last_sample_ok仅表示最后一个HTTP请求采样器(在我的情况下,仅限HTTP请求采样器8)?如果我想检查每个采样器1-8的状况,这里可以做什么

  • JMeterThread是JMeterJava类还是Java对象

  • 除了上一个示例外,还有什么其他方法可以应用于JMeterThread对象

  • 谢谢。

    一种方法是使用Jenkins电子邮件扩展插件,您可以将该插件设置为在构建失败时向您发送电子邮件。 (因此,当脚本的HTTP请求失败时,生成可能会失败。)

  • JMeterThread.last_sample_ok是JMeterThread类的静态字符串字段

    JMeterThread类的源代码中的这一行显示,LAST_SAMPLE_OK将被设置为父对象的字符串表示形式。isSuccessful()布尔变量,其中parent是一个SampleResult对象:

        threadContext.getVariables().put(LAST_SAMPLE_OK, Boolean.toString(parent.isSuccessful()));
    
    基本上,LAST_SAMPLE_OK将指示最后一个样本是否成功(直到它被下一个采样器重置)

    是,如果JMeterThread.last_sample_ok为true,则最后一个采样器成功。在您的例子中,它是HTTP请求采样器8

    您可以将所有HTTP采样器添加为事务控制器的子对象,并选中“生成父样本”复选框

    这将使JMeter为事务控制器的所有内部样本生成父样本。如果其中一个子采样器失败,则父样本也将失败

    将您的If控制器添加到事务控制器之后

    现在JMeterThread.last_sample_ok将与生成的父样本相关

  • JMeterThread是一个

  • 最后一个示例不是一个方法,而是一个静态字段。JMeterThread类中还有一个字段和许多方法