2017-09-14 286 views
0

我正在从3.0升级到JMeter 3.2并获取下面的stackoverflow错误。除此之外,我无法验证我的脚本。升级到JMeter时出现Stackoverflow错误3.2

2017-09-13 16:17:30,804 INFO o.a.j.t.JMeterThread: Thread started: UI Navigation 1-1 
2017-09-13 16:17:37,311 INFO o.a.j.t.JMeterThread: Thread started: UI Navigation 1-2 
2017-09-13 16:17:38,904 INFO o.a.j.t.JMeterThread: Thread finished: UI Navigation 1-1 
2017-09-13 16:17:38,904 ERROR o.a.j.JMeter: Uncaught exception: 
java.lang.StackOverflowError: null 
at java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_144] 
at java.lang.Class.privateGetDeclaredFields(Unknown Source) ~[?:1.8.0_144] 
at java.lang.Class.getDeclaredField(Unknown Source) ~[?:1.8.0_144] 
at jdk.nashorn.internal.runtime.Context$ContextCodeInstaller$1.run(Context.java:209) ~[nashorn.jar:?] 
at jdk.nashorn.internal.runtime.Context$ContextCodeInstaller$1.run(Context.java:204) ~[nashorn.jar:?] 
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_144] 
at jdk.nashorn.internal.runtime.Context$ContextCodeInstaller.initialize(Context.java:204) ~[nashorn.jar:?] 
at jdk.nashorn.internal.codegen.CompilationPhase$InstallPhase.transform(CompilationPhase.java:508) ~[nashorn.jar:?] 
at jdk.nashorn.internal.codegen.CompilationPhase.apply(CompilationPhase.java:624) ~[nashorn.jar:?] 
at jdk.nashorn.internal.codegen.Compiler.compile(Compiler.java:655) ~[nashorn.jar:?] 
at jdk.nashorn.internal.runtime.Context.compile(Context.java:1317) ~[nashorn.jar:?] 
at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:1251) ~[nashorn.jar:?] 
at jdk.nashorn.internal.runtime.Context.compileScript(Context.java:627) ~[nashorn.jar:?] 
at jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:535) ~[nashorn.jar:?] 
at jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:524) ~[nashorn.jar:?] 
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402) ~[nashorn.jar:?] 
at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155) ~[nashorn.jar:?] 
at org.apache.jmeter.functions.JavaScript.executeWithNashorn(JavaScript.java:142) ~[ApacheJMeter_functions.jar:3.2 r1790748] 
at org.apache.jmeter.functions.JavaScript.execute(JavaScript.java:103) ~[ApacheJMeter_functions.jar:3.2 r1790748] 
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:141) ~[ApacheJMeter_core.jar:3.2 r1790748] 
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:116) ~[ApacheJMeter_core.jar:3.2 r1790748] 
at org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:101) ~[ApacheJMeter_core.jar:3.2 r1790748] 
at org.apache.jmeter.testelement.AbstractTestElement.getPropertyAsString(AbstractTestElement.java:281) ~[ApacheJMeter_core.jar:3.2 r1790748] 
at org.apache.jmeter.control.SwitchController.getSelection(SwitchController.java:133) ~[ApacheJMeter_components.jar:3.2 r1790748] 
at org.apache.jmeter.control.SwitchController.getSelectionAsInt(SwitchController.java:91) ~[ApacheJMeter_components.jar:3.2 r1790748] 
at org.apache.jmeter.control.SwitchController.next(SwitchController.java:63) ~[ApacheJMeter_components.jar:3.2 r1790748] 
at org.apache.jmeter.control.GenericController.nextIsAController(GenericController.java:219) ~[ApacheJMeter_core.jar:3.2 r1790748] 
at org.apache.jmeter.control.GenericController.next(GenericController.java:173) ~[ApacheJMeter_core.jar:3.2 r1790748] 
at org.apache.jmeter.control.LoopController.next(LoopController.java:123) ~[ApacheJMeter_core.jar:3.2 r1790748] 
at org.apache.jmeter.control.LoopController.nextIsNull(LoopController.java:151) ~[ApacheJMeter_core.jar:3.2 r1790748] 
at org.apache.jmeter.control.GenericController.next(GenericController.java:168) ~[ApacheJMeter_core.jar:3.2 r1790748] 
at org.apache.jmeter.control.LoopController.next(LoopController.java:123) ~[ApacheJMeter_core.jar:3.2 r1790748] 

- 这正好为1000线

这只会影响我的剧本之一,其他所有运行良好。

回答

0

如果仔细观察堆栈跟踪,它会抱怨SwitchController,这是我需要的线索。我在脚本中使用了一个开关控制器来运行不同的事务控制器。我正在使用Using Switch Controller: Random Weighted Values页面中提到的逻辑。

${__javaScript(var s="0112223333"; new Number(s.charAt(Math.floor(Math.random()*s.length))))} 

这是导致问题的代码。它现在返回一个浮动的Number对象而不是整数。

这是我的队友使用下面的代码解决的。

${__javaScript(var s="0112223333"; s.charAt(Math.floor(Math.random()*s.length)))} 

此代码返回一个整数,我的交换机再次工作。这将影响任何人使用此逻辑并升级到JMeter 3.2

相关问题