while-loop - 控制器失败时的JMeter
问题描述
我希望能够运行此测试计划的多次迭代。
Thread Group
While ${__javaScript("${user}" != "<EOF>",)}
csv1 config
If "${user}" != "<EOF>"
Module Controller
While ${__javaScript("${user2}" != "<EOF>",)}
csv2 config
If "${user2}" != "<EOF>"
Module Controller 2
当我运行测试时,在第二个 while 控制器结束时,它输出以下错误:我也尝试只运行 1 个 while 控制器,它具有相同的响应。我不确定如果它能够到达第二个 while 控制器,它为什么不停止当前迭代并开始一个新的迭代。
java.lang.StackOverflowError: null
at java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_231]
at java.lang.Class.privateGetDeclaredFields(Unknown Source) ~[?:1.8.0_231]
at java.lang.Class.getDeclaredField(Unknown Source) ~[?:1.8.0_231]
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_231]
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:5.1.1 r1855137]
at org.apache.jmeter.functions.JavaScript.execute(JavaScript.java:103) ~[ApacheJMeter_functions.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:136) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:111) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:101)
...
提前致谢。
解决方案
我不知道循环控制器是如何工作的,但我用它们来解决这个问题。
Thread Group
Throughput Controller
Loop Controller (size_of_csv)
csv config
Module Controller
Loop Controller 2(size_of_csv 2)
csv 2 config
Module Controller 2
推荐阅读
- flutter - No Icon but it can be tested
- python - 使用 pandas.DataFrame.plot() 时如何显示所有 xticks?
- java - 有没有办法将外部文件“信息”保存到java中的数组中?
- wordpress - 插件 gatsby-source-wordpress 中的 ETIMEDOUT 错误
- c - 问题涉及N x N的网格,并且有一定数量的小偷和强盗。数一数有多少小偷被抓
- c# - CSVHelper 将值传递给 MapClass
- r - 测试某些变量(不同版本)是否出现在数据中
- wordpress - 自定义元框字段不显示 HTML
- xml - 如何使用 expath 和 Xquery 获取 CSV 文件?
- javascript - 由带有标题的图块组成的菜单——图像不会在 flex 中缩小