Jmeter 如何基于以前的请求-响应数据运行请求

Jmeter 如何基于以前的请求-响应数据运行请求,jmeter,Jmeter,我有以下要求的测试计划,按顺序有2个循环 ApiHttp请求 Mqtt请求 我需要运行第一个循环并验证API响应是否正确: 如果为true,则运行Mqtt-request,否则启动第二个循环并验证API响应,如果为true,则运行Mqtt-else-stop 在上述场景中,我让beanshell阅读API响应: vars.put("response", new String(data)); 但是不知道如何验证它的真假&执行Mqtt。请提供任何帮助。首先从Beanshe

我有以下要求的测试计划,按顺序有2个循环

  • ApiHttp请求
  • Mqtt请求
  • 我需要运行第一个循环并验证API响应是否正确:

    如果为true,则运行Mqtt-request,否则启动第二个循环并验证API响应,如果为true,则运行Mqtt-else-stop

    在上述场景中,我让beanshell阅读API响应:

       vars.put("response", new String(data));
    

    但是不知道如何验证它的真假&执行Mqtt。请提供任何帮助。

    首先从Beanshell切换到JSR223测试元素并使用Groovy

    使用并放入:

    ${response}

    要停止基于迭代编号的测试,请注意循环控制器根据变量名称将迭代公开为变量,例如,如果您的循环控制器名为LC,则您可以通过以下方式访问迭代:

    vars[“\uuujm\uuuuuuulc\uuuuuuidx”].toInteger()

    要使用JSR223断言停止Groovy的测试,您可以抛出:

    抛出新的org.apache.jorphan.util.JMeterStopTestException()

    见:

  • 添加作为线程组下的第一个测试元素,并使用作为条件:

    ${__groovy(vars.getIteration() <= 2,)}
    
    ${__groovy(ctx.getPreviousResult().getResponseDataAsString().contains('true'))}
    
  • 添加
    Mqtt请求
    作为If控制器的子级

  • Mqtt请求之后添加采样器
    ,并将其配置为: