如果Jmeter的控制器抛出了StackoverFloerRor



我正在使用jmeter加载系统。我有两个线程组。第一个应该注入大约1M事件,而第二个事件则模拟于UI。

我需要第二个线程组继续向UI发送请求,直到第一个线程注入1M事件。

我找到了此解决方案,并将其实现如下:

  1. 在第一个线程组中,我添加了beanshell预处理器,其中包括以下代码:

    props.put("完成"," false");

  2. 仍然在第一个线程组中,我添加了beanshell后处理器,其中包括以下代码:

    int activethreadCount = org.apache.jmeter.threads.jmetercontextservice.getnumberofthreads();

    if (activeThreadCount <= 1)
    {
    props.put("DONE", "TRUE");
    }
    
  3. 在第二个线程组中,我添加了一个具有以下条件的IF控制器:

    $ {__ beanshell(props.get(" done")!= null&amp;&amp; props.get("完成")==" true")}

此解决方案不起作用,我在测试结束时看到以下错误:

2016/12/22 20:52:30错误-jmeter.threads.jmeterthread:测试失败! java.lang.stackoverflowerror在java.lang.string.valueof(未知) 源)at Java.lang.stringbuilder.append(未知来源) org.apache.jmeter.engine.util.compoundvariable.execute(compoundvariable.java:152) 在 org.apache.jmeter.engine.util.compoundvariable.execute(compoundvariable.java:117) 在 org.apache.jmeter.testelement.property.function property.getStringValue(functionProperty.java:101) 在 org.apache.jmeter.testelement.abstracttestelement.getPropertyasstring(AbstractTesteLement.Java:271) 在 org.apache.jmeter.control.ifcontroller.getCondition(ifcontroller.java:177) atrg.apache.jmeter.control.ifcontroller.next(ifcontroller.java:240) 在 org.apache.jmeter.control.genericcontroller.nextisacontroller(genericController.java:222) 在 org.apache.jmeter.control.genericcontroller.next(genericController.java:176) 在 org.apache.jmeter.control.loopcontroller.next(loopcontroller.java:123) 在 org.apache.jmeter.control.genericcontroller.nextisacontroller(genericController.java:225) 在 org.apache.jmeter.control.genericcontroller.next(genericController.java:176) 在 org.apache.jmeter.control.loopcontroller.next(loopcontroller.java:123) 在 org.apache.jmeter.control.loopcontroller.nextisnull(loopcontroller.java:151) 在 org.apache.jmeter.control.genericcontroller.next(genericController.java:171) 在 org.apache.jmeter.control.loopcontroller.next(loopcontroller.java:123)

......

......

......

(如上所述继续约1000行)

有人可以告诉我这个错误的来源是什么?我可以简单地忽略它吗?看起来这是一个递归操作,没有任何停止条件。

谢谢Guy H

这可能是jmeter&lt中的一个旧错误;2.12如果if控制器是loopcontroller的唯一孩子,并且在开始时是错误的。

最近版本的Jmeter有一些修复:

  • https://bz.apache.org/bugzilla/show_bug.cgi?id=56160

尝试使用Jmeter的新版本

解决方法是作为Loop Controller的第一个孩子添加测试操作(从5.0起更名为流量控制动作),暂停= 0

相关内容

  • 没有找到相关文章

最新更新