【问题标题】:How to add a condition in my IF CONTROLLER using jmeter and groovy如何使用 jmeter 和 groovy 在我的 IF 控制器中添加条件
【发布时间】:2018-09-01 04:40:54
【问题描述】:

我正在使用 jmeter 3.3 和 groovy,并且有一个 IF CONDITION,它根据响应代码进行过滤。

这就是我正在做的,它有效:

${__jexl3(${code} != 000)} 

现在我想在此条件或 OR 逻辑中添加 AND 逻辑

例如这样做:

${__jexl3(${code} != 000)} && ${__jexl3(${code} != 901)}

但这似乎不起作用。

添加逻辑运算符的正确方法是什么?

【问题讨论】:

  • 你试过这个 ${__jexl3(${code} != 000 && ${code} != 000)}
  • 如果你回应我会接受它的工作原理
  • Kiril S. 把答案贴在下面,你可以接受。
  • 你是第一个但很好
  • 感谢您的接受。我在评论出现之前写了答案,但测试它花了几分钟;)

标签: groovy jmeter jmeter-3.2


【解决方案1】:
  • 如果你想要JEXL,你需要使用一个函数调用而不是两个单独的:

    ${__jexl3("${code}" != "000" && "${code}" != "901" ,)}
    
  • 如果您想使用Groovy - 将变量称为vars.get('code'),例如:

    ${__groovy((!vars.get('code').equals('000') && !vars.get('code').equals('901')),)}
    

更多信息:6 Tips for JMeter If Controller Usage

【讨论】:

    【解决方案2】:

    如果您将语句更改为

    ${__jexl3(${code} != 000 && ${code} != 000)} 
    

    它会起作用(即,您在相同的 jexl3 评估下拉出这两个条件)。

    问题是,您根本不需要 jexl3 评估。您的 If Controller 默认使用 JavaScript,因此可以这样配置:

    所以你的代码可以是

    ${code} != 000 && ${code} != 000
    

    (当然,把相同的条件放在那里没有多大意义,但我认为这是一个例子)

    【讨论】:

    • 建议使用 Javascript,虽然它有效,但并不理想。正如 jmeter5 UI 现在所表明的那样,为了提高性能,最好使用 groovy 或 jexl3。
    • @JonL。这是一个3岁的答案。我很长一段时间没有处理 Jmeter,但在过去你必须单独安装 groovy。因此,为了简单比较的一点性能优势而这样做也不理想(这称为过早优化)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多