简体   繁体   English

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

[英]Timeout of JMS Point-to-point requests in JMeter does not result in an error

We are using Apache JMeter 2.12 in order to measure the response time of our JMS queue. 我们使用Apache JMeter 2.12来测量JMS队列的响应时间。 However, we would like to see how many of those requests take less than a certain time. 但是,我们希望看到有多少请求花费的时间少于一定时间。 This, according to the official site of JMeter ( http://jmeter.apache.org/usermanual/component_reference.html ) should be set by the Timeout property. 根据JMeter的官方网站( http://jmeter.apache.org/usermanual/component_reference.html ),这应该由Timeout属性设置。 You can see in the photo below how our configuration looks like: 您可以在下面的照片中看到我们的配置如何: JMS点对点配置

However, setting the timeout does not result in an error after sending 100 requests. 但是,设置超时不会在发送100个请求后导致错误。 We can see that some of them take apparently more than that amount of time: 我们可以看到其中一些花费的时间显然超过了该时间:

结果 Is there some other setting I am missing or is there a way to achieve my goal? 我还缺少其他设置吗?或者有什么方法可以实现我的目标?

Thanks! 谢谢!

The JMeter documentation for JMS Point-to-Point describes the timeout as JMS点对点的JMeter文档将超时描述为

The timeout in milliseconds for the reply-messages. 答复消息的超时时间(以毫秒为单位)。 If a reply has not been received within the specified time, the specific testcase failes and the specific reply message received after the timeout is discarded. 如果在指定时间内未收到答复,则特定测试用例将失败,并且超时后收到的特定答复消息将被丢弃。 Default value is 2000 ms. 默认值为2000毫秒。

This is timing not the actual sending the message but receipt of a response. 这不是实际发送消息,而是接收响应的时间。

The source for the JMeter Point to Point will determine if you have a 'Receive Queue' Configured. JMeter点对点的将确定您是否配置了“接收队列”。 If you do it will go through the executor path and use the timeout value, otherwise it does not use time timeout value. 如果这样做,它将通过执行程序路径并使用超时值,否则将不使用超时值。

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

In your screen shot JNDI name Receive Queue is not defined, thus it uses temporary queue, and does not use the timeout. 在屏幕快照中,未定义JNDI名称Receive Queue,因此它使用临时队列,并且不使用超时。 Should or should not timeout be supported in this case, that is best discussed in JMeter forum. 在这种情况下是否应该支持超时,最好在JMeter论坛中讨论。

Alternately if you want to see request times in percentiles/buckets please read this stack overflow Q/A - I want to find out the percentage of HTTPS requests that take less than a second in JMeter 或者,如果您希望以百分位/桶的形式查看请求时间,请阅读此堆栈溢出问答。 我想找出在JMeter中花费不到一秒的HTTPS请求的百分比

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM