JMeter在if条件为false时抛出以下异常
例如在中频控制器中,如果我们使用1==1,它的工作没有任何问题。但是,如果我们使用1==2,那么它可以很好地跳过线程组下的语句。但在日志语句下面抛出异常。如果有人能在这个问题上提供帮助,我将不胜感激。
. lang。StackOverflowError:空
我最初使用了这个条件${__groovy("${__machineIP()}"=="10.0.0.4")},如果条件失败,下面是错误(I。e IP不为10.0.0.4)at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.compareToWithEqualityCheck(DefaultTypeTransformation.java:597) ~[groovy-3.0.7.jar:3.0.7] at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.compareEqual(DefaultTypeTransformation.java:621) ~[groovy-3.0.7.jar:3.0.7] at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.compareEqual(ScriptBytecodeAdapter.java:708) ~[groovy-3.0.7.jar:3.0.7]
您应该使用groovy/java语法:
${__groovy( "10.0.0.4".equals(JMeterUtils.getLocalHostIP()))
不要在__groovy
函数中使用${
语法
不要将JMeter函数或变量内联到groovy脚本中。
选择__jexl3()函数:
${__jexl3("${__machineIP()}"=="10.0.0.4",)}
或修改__groovy()函数以使用底层的__machineIP()逻辑:
${__groovy(org.apache.jmeter.util.JMeterUtils.getLocalHostIP() == '10.0.0.4',)}
更多信息:JMeter If Controller使用的6个技巧