JMS超时JMeter中的点对点请求不会导致错误

时间:2015-02-19 15:13:34

标签: jmeter

我们正在使用Apache JMeter 2.12来测量JMS队列的响应时间。但是,我们希望看到有多少请求花费的时间少于一定时间。根据JMeter(http://jmeter.apache.org/usermanual/component_reference.html)的官方网站,这应该由Timeout属性设置。您可以在下面的照片中看到我们的配置如何: JMS Point-to-point Configration

但是,设置超时不会在发送100个请求后导致错误。我们可以看到其中一些显然超过了这段时间:

Result 我还缺少其他一些设置,还是有办法实现我的目标?

谢谢!

1 个答案:

答案 0 :(得分:1)

JMS Point-to-Point的JMeter文档将超时描述为

  

回复消息的超时(以毫秒为单位)。如果在指定时间内未收到回复,则特定测试用例将失效,并且超时后收到的特定回复消息将被丢弃。默认值为2000毫秒。

这不是实际发送消息的时间,而是接收到响应。

JMeter Point to Point的source将确定您是否拥有“接收队列”#39;配置。如果这样做,将通过执行程序路径并使用超时值,否则它不使用时间超时值。

            if (useTemporyQueue()) {
                executor = new TemporaryQueueExecutor(session, sendQueue);
            } else {
                producer = session.createSender(sendQueue);
                executor = new FixedQueueExecutor(producer, getTimeoutAsInt(), isUseReqMsgIdAsCorrelId());
            }

在您的屏幕截图中,未定义JNDI名称Receive Queue,因此它使用临时队列,并且不使用超时。在这种情况下应该或不应该支持超时,这在JMeter论坛中有最好的讨论。

或者,如果您想查看百分位/桶的请求时间,请阅读此堆栈溢出Q / A - I want to find out the percentage of HTTPS requests that take less than a second in JMeter