从JMeter检查ActiveMQ队列是否为空


问题内容

我正在使用JMeter对我们的应用程序进行性能测试,并且在ActiveMQ队列上以事件的形式进行了一些异步处理。我想等待ActiveMQ队列为空,然后再记录测试的统计信息。有什么好办法吗?

我已经在JMeter
2.10中探索了JMS生产者/消费者,但是它们消耗了队列外的消息,这不是我想要的,因为它修改了应用程序的原始流程。有没有一种方法可以在不消耗ActiveMQ消息的情况下监视队列的消耗?

我正在使用ActiveMQ 5.8和JMeter 2.10


问题答案:

您可以使用MBean在该队列中获取挂起的消息
"org.apache.activemq:BrokerName=host1,Type=Queue,Destination=dest1"
attribute: "QueueSize"

每隔几秒钟检查一次并且该值不超过零后,就可以开始记录统计信息了。