2017-09-14 51 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

相關問題