JMeter - 如何将我的组的所有HTTP请求传递给if控制器

时间:2018-01-25 11:45:11

标签: java groovy jmeter

我的Threads组中有一堆HTTP请求,我希望在具有特定条件的IF Controller中对所有这些请求进行评估。

enter image description here

JRS233 Listener包含以下脚本:

if (!prev.isSuccessful()) {
    vars.put('samplerFailed', 'true')
}

if(prev.isSuccessful()) {
    vars.put('samplerSuccess', 'true'); 
}

如果CONTROLLER OK 表明这种情况:

${samplerFailed}

如果Controller KO 具有以下条件:

${samplerSuccess}

我希望为所有采样器执行两个IF控制器。

我怎样才能实现它?

感谢

2 个答案:

答案 0 :(得分:1)

  1. JSR223 Listener添加到您的测试计划(与所有HTTP请求相同的级别)并将以下代码放入"脚本"面积:

    if (!prev.isSuccessful()) {
        vars.put('samplerFailed', 'true')
    }
    
  2. 将If控制器条件更改为${samplerFailed}
  3. 这样只有当samplers in scope of the JSR223 Listener中出现任何故障时,才会执行Controller的子节目。

答案 1 :(得分:0)

您可以loop through different URLs/ HTTP Requests并为每个请求执行相同的逻辑。

将HTTP请求和If控制器置于While Controller下,并添加将从文件中读取URL的CSV数据集配置。

while循环将停止,直到使用${url}条件

完成读取CSV文件

您的流程将保持不变,唯一不同的是,它将在CSV文件中每行执行。