我们正在使用Apache JMeter 2.12来测量JMS队列的响应时间。但是,我们希望看到有多少请求花费的时间少于一定时间。根据JMeter(http://jmeter.apache.org/usermanual/component_reference.html)的官方网站,这应该由Timeout属性设置。您可以在下面的照片中看到我们的配置如何:
但是,设置超时不会在发送100个请求后导致错误。我们可以看到其中一些显然超过了这段时间:
我还缺少其他一些设置,还是有办法实现我的目标?
谢谢!
答案 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