首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含操作符的Groovy函数的Jmeter控制器&并没有工作

包含操作符的Groovy函数的Jmeter控制器&并没有工作
EN

Stack Overflow用户
提问于 2020-03-04 06:27:02
回答 1查看 259关注 0票数 0

我正在创建2倍的If控制器在J抄5.1.1。

基于here中的讨论,我尝试的表达式是

代码语言:javascript
复制
${__groovy( (vars.get("conditionState").equals("1")) && (vars.get("NewgameConditionValue").equals(6) ) )  }

代码语言:javascript
复制
${__groovy((vars.get("conditionState").equals("0")) || !(vars.get("NewgameConditionValue").equals(6) ) ) }

运行它时,JMeter会抛出异常

第一个表达式

代码语言:javascript
复制
org.apache.jmeter.functions.InvalidVariableException: Expected } after __groovy function call in ${__groovy( (vars.get("conditionState").equals("1")) && (vars.get("NewgameConditionValue").equals(6)
at org.apache.jmeter.engine.util.FunctionParser.makeFunction(FunctionParser.java:139) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.util.FunctionParser.compileString(FunctionParser.java:82) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.util.CompoundVariable.setParameters(CompoundVariable.java:181) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.util.ReplaceStringWithFunctions.transformValue(ReplaceStringWithFunctions.java:46) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.util.ValueReplacer.replaceValues(ValueReplacer.java:170) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.util.ValueReplacer.replaceValues(ValueReplacer.java:80) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.PreCompiler.addNode(PreCompiler.java:89) [ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:994) [jorphan.jar:5.1.1 r1855137]
at org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:995) [jorphan.jar:5.1.1 r1855137]
at org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:995) [jorphan.jar:5.1.1 r1855137]
at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:977) [jorphan.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:362) [ApacheJMeter_core.jar:5.1.1 r1855137]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_221]

第二天

代码语言:javascript
复制
org.apache.jmeter.functions.InvalidVariableException: Expected } after __groovy function call in ${__groovy((vars.get("conditionState").equals("0")) || !(vars.get("NewgameConditionValue").equals(6)
at org.apache.jmeter.engine.util.FunctionParser.makeFunction(FunctionParser.java:139) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.util.FunctionParser.compileString(FunctionParser.java:82) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.util.CompoundVariable.setParameters(CompoundVariable.java:181) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.util.ReplaceStringWithFunctions.transformValue(ReplaceStringWithFunctions.java:46) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.util.ValueReplacer.replaceValues(ValueReplacer.java:170) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.util.ValueReplacer.replaceValues(ValueReplacer.java:80) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.PreCompiler.addNode(PreCompiler.java:89) [ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:994) [jorphan.jar:5.1.1 r1855137]
at org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:995) [jorphan.jar:5.1.1 r1855137]
at org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:995) [jorphan.jar:5.1.1 r1855137]
at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:977) [jorphan.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:362) [ApacheJMeter_core.jar:5.1.1 r1855137]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_221]

我把它换成了

代码语言:javascript
复制
${__groovy( (vars.get("conditionState").equals("1")) && (vars.get("NewgameConditionValue") == 6 ) )  }

它会抛出同样的错误。

但如果我没有这样的接线员

代码语言:javascript
复制
${__groovy(vars.get("conditionState").equals("1") )}

它工作得很好。

不知道我在哪里做错了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-04 17:30:17

关闭}之前的空格将导致错误。

触发这一点的一个更简单的表达式是${__groovy(true) }。注意结束大括号前的空格。

目前,我认为这是一个bug (https://bz.apache.org/bugzilla/show_bug.cgi?id=64198)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60520192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档