1

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

我已经探索了 JMeter 2.10 中的 JMS Producer/Consumers,但它们使用队列中的消息,这不是我想要的,因为它修改了应用程序的原始流程。有没有办法在不消耗 ActiveMQ 消息的情况下监控队列的排空?

我正在使用 ActiveMQ 5.8 和 JMeter 2.10

4

3 回答 3

1

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

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

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

如果在服务器上启用了 JMX,但默认情况下未启用,Mahesh 的 MBean 解决方案也应该可以工作。

我在这里详细记录了它

于 2013-11-20T09:28:38.510 回答
0

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

每隔几秒检查一次,数值不大于零后,就可以开始记录统计了。

于 2013-11-17T20:08:03.177 回答
0

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

于 2013-11-13T18:57:26.377 回答