JMeter如果条件抛出java.lang.StackOverflowError: null



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个技巧

相关内容

最新更新