从JMeter检查ActiveMQ队列是否为空

时间:2013-11-13 18:53:50

标签: activemq jmeter

我正在使用JMeter为我们的应用程序运行性能测试,并且在ActiveMQ队列上以事件的形式进行了一些异步处理。我想在记录测试的统计信息之前等待ActiveMQ队列为空。有没有办法做到这一点?

我已经在JMeter 2.10中探索了JMS生产者/消费者,但他们消耗了队列中的消息,这不是我想要的,因为它修改了应用程序的原始流程。有没有办法监视队列的耗尽而不消耗ActiveMQ的消息?

我正在使用ActiveMQ 5.8和JMeter 2.10

3 个答案:

答案 0 :(得分:1)

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

每隔几秒检查一次并且值不超过零,您就可以开始记录统计数据了。

答案 1 :(得分:1)

我能够使用HTTP请求监视ActiveMQ以轮询ActiveMQ Web控制台并以XML格式获取所有队列的状态。之后我使用XPATH来提取我感兴趣的队列的大小。下面的快照显示了我最终能够使用的配置。我使用的XPATH表达式是

/queues/queue[@name='${queueName}']/stats/@size

我要做的另一件事是设置基本的HTTP身份验证,以便能够连接到ActiveMQ Web控制台。

如果在服务器上启用JMX但默认情况下未启用Jess,则Mahesh的MBean解决方案也应该有效。

我已详细记录了here

答案 2 :(得分:0)

您可以创建一个简单的Java类来使用队列中的所有消息。 JMeter可以在测试之前运行它。