如何使用def变量作为if控制器的条件 - JMeter

时间:2018-02-21 14:37:36

标签: javascript groovy jmeter

我在JSR223 Assertion中有这样的定义:

def code = 123

有没有办法将它用作我的if控制器的条件?

我试过

${code}=='123'

但它不起作用。

这是线程组:

enter image description here

2 个答案:

答案 0 :(得分:2)

您必须将代码添加为JMeter变量:

vars.put("code", code.toString());

然后检查jexl3或groory in If Controller:

${__jexl3(${code} == 123)}

来自If Controller component

的参考资料
  

例如,以前可以使用以下条件:$ {__ jexl3($ {VAR} == 23)}

您还可以看到String in Groovy

  

def greeting =“Hello $ {name}”

     

断言greeting.toString()=='Hello Guillaume'

答案 1 :(得分:1)

您可以使用Debug SamplerView Results Tree侦听器组合检查JMeter中定义的变量,如果未设置变量 - 您可以使用相同的方法查看“丢失”的位置。 JSR223测试元素错误通常可以在 jmeter.log 文件中找到。

回到你的问题:

  1. 您需要将code存储到JMeterVariables类实例中,例如:

    def code = 123
    vars.putObject('code', 123)
    
  2. 将If Controller的条件修改为:

    ${__groovy(vars.getObject('code') == 123,)}
    
  3. 更多信息:How to Debug your Apache JMeter Script