【问题标题】:JMeter - How to pass all the HTTP Request of my group to an if controllerJMeter - 如何将我组的所有 HTTP 请求传递给 if 控制器
【发布时间】:2018-01-25 22:57:57
【问题描述】:

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

JRS233 Listener 包含此脚本:

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

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

如果 CONTROLLER OK 符合这个条件:

${samplerFailed}

并且如果控制器KO有这个条件:

${samplerSuccess}

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

我怎样才能实现它?

谢谢

【问题讨论】:

标签: java groovy jmeter


【解决方案1】:
  1. JSR223 Listener添加到您的测试计划(与所有HTTP请求相同的级别)并将以下代码放入“脚本”区域:

    if (!prev.isSuccessful()) {
        vars.put('samplerFailed', 'true')
    }
    
  2. 将您的 If Controller 条件更改为 ${samplerFailed}

这种方式如果Controller的子节点只有在samplers in scope of the JSR223 Listener有任何失败的时候才会被执行。

【讨论】:

  • 你的意思是不使用事务控制器吗?
  • 此设置不需要
  • 感谢 Dmitri,它似乎不起作用,请查看我的更改
【解决方案2】:

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

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

While 循环将停止,直到使用 ${url} 条件完成读取 CSV 文件

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    相关资源
    最近更新 更多