jmeter 3.3 CSV 示例抛出 stackoverflow 异常
jmeter 3.3 CSV example throws stackoverflow exception
我下载 JMeter 3.3 并在示例文件夹中打开示例 CSVSample.jmx 并执行,我得到以下 Whosebug 异常
测试计划:
017-09-24 16:38:09,452 ERROR o.a.j.JMeter: Uncaught exception:
java.lang.WhosebugError: null
at jdk.internal.dynalink.support.AbstractCallSiteDescriptor.hashCode(AbstractCallSiteDescriptor.java:142) ~[nashorn.jar:?]
at java.util.concurrent.ConcurrentHashMap.putVal(Unknown Source) ~[?:1.8.0_144]
at java.util.concurrent.ConcurrentHashMap.putIfAbsent(Unknown Source) ~[?:1.8.0_144]
at jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.get(NashornCallSiteDescriptor.java:167) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.get(NashornCallSiteDescriptor.java:158) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.LinkerCallSite.newLinkerCallSite(LinkerCallSite.java:114) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.Bootstrap.bootstrap(Bootstrap.java:208) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.Bootstrap.createDynamicInvoker(Bootstrap.java:371) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.Bootstrap.createDynamicInvoker(Bootstrap.java:345) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.InvokeByName.<init>(InvokeByName.java:86) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.InvokeByName.<init>(InvokeByName.java:73) ~[nashorn.jar:?]
at jdk.nashorn.internal.objects.Global.<init>(Global.java:96) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.Context.newGlobal(Context.java:1111) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.run(NashornScriptEngine.java:350) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.run(NashornScriptEngine.java:346) ~[nashorn.jar:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_144]
at jdk.nashorn.api.scripting.NashornScriptEngine.createNashornGlobal(NashornScriptEngine.java:346) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.createGlobalMirror(NashornScriptEngine.java:340) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.createBindings(NashornScriptEngine.java:170) ~[nashorn.jar:?]
at org.apache.jmeter.control.IfController$NashornJsEngine.evaluate(IfController.java:123) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.IfController.evaluateCondition(IfController.java:185) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.IfController.next(IfController.java:239) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.GenericController.nextIsAController(GenericController.java:219) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.GenericController.next(GenericController.java:173) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.WhileController.next(WhileController.java:106) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.WhileController.nextIsNull(WhileController.java:82) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.GenericController.next(GenericController.java:168) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.WhileController.next(WhileController.java:106) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.GenericController.nextIsAController(GenericController.java:222) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.GenericController.next(GenericController.java:173) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.WhileController.next(WhileController.java:106) ~[ApacheJMeter_core.jar:3.3 r1808647]
at
这是因为While Controller条件使用了一个函数__jexl已被移除:
${__jexl("${ACTION}" != "")}
应该是:
${__jexl3("${ACTION}" != "")}
今天在 jmeter 代码中修复:
我下载 JMeter 3.3 并在示例文件夹中打开示例 CSVSample.jmx 并执行,我得到以下 Whosebug 异常
测试计划:
017-09-24 16:38:09,452 ERROR o.a.j.JMeter: Uncaught exception:
java.lang.WhosebugError: null
at jdk.internal.dynalink.support.AbstractCallSiteDescriptor.hashCode(AbstractCallSiteDescriptor.java:142) ~[nashorn.jar:?]
at java.util.concurrent.ConcurrentHashMap.putVal(Unknown Source) ~[?:1.8.0_144]
at java.util.concurrent.ConcurrentHashMap.putIfAbsent(Unknown Source) ~[?:1.8.0_144]
at jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.get(NashornCallSiteDescriptor.java:167) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor.get(NashornCallSiteDescriptor.java:158) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.LinkerCallSite.newLinkerCallSite(LinkerCallSite.java:114) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.Bootstrap.bootstrap(Bootstrap.java:208) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.Bootstrap.createDynamicInvoker(Bootstrap.java:371) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.Bootstrap.createDynamicInvoker(Bootstrap.java:345) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.InvokeByName.<init>(InvokeByName.java:86) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.linker.InvokeByName.<init>(InvokeByName.java:73) ~[nashorn.jar:?]
at jdk.nashorn.internal.objects.Global.<init>(Global.java:96) ~[nashorn.jar:?]
at jdk.nashorn.internal.runtime.Context.newGlobal(Context.java:1111) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.run(NashornScriptEngine.java:350) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.run(NashornScriptEngine.java:346) ~[nashorn.jar:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_144]
at jdk.nashorn.api.scripting.NashornScriptEngine.createNashornGlobal(NashornScriptEngine.java:346) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.createGlobalMirror(NashornScriptEngine.java:340) ~[nashorn.jar:?]
at jdk.nashorn.api.scripting.NashornScriptEngine.createBindings(NashornScriptEngine.java:170) ~[nashorn.jar:?]
at org.apache.jmeter.control.IfController$NashornJsEngine.evaluate(IfController.java:123) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.IfController.evaluateCondition(IfController.java:185) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.IfController.next(IfController.java:239) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.GenericController.nextIsAController(GenericController.java:219) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.GenericController.next(GenericController.java:173) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.WhileController.next(WhileController.java:106) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.WhileController.nextIsNull(WhileController.java:82) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.GenericController.next(GenericController.java:168) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.WhileController.next(WhileController.java:106) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.GenericController.nextIsAController(GenericController.java:222) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.GenericController.next(GenericController.java:173) ~[ApacheJMeter_core.jar:3.3 r1808647]
at org.apache.jmeter.control.WhileController.next(WhileController.java:106) ~[ApacheJMeter_core.jar:3.3 r1808647]
at
这是因为While Controller条件使用了一个函数__jexl已被移除:
${__jexl("${ACTION}" != "")}
应该是:
${__jexl3("${ACTION}" != "")}
今天在 jmeter 代码中修复: