【问题标题】:Checking ActiveMQ queue is empty from JMeter从 JMeter 检查 ActiveMQ 队列为空
【发布时间】:2013-11-20 20:48:39
【问题描述】:

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

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

我正在使用 ActiveMQ 5.8 和 JMeter 2.10

【问题讨论】:

    标签: activemq jmeter


    【解决方案1】:

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

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

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

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

    我已经详细记录了here

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 你能解释一下如何在 JMeter 中执行 MBean,你使用的是 BeanShell 采样器吗?
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-20
        • 1970-01-01
        • 2019-02-10
        • 2011-12-19
        • 2019-12-02
        • 1970-01-01
        • 2010-09-30
        相关资源
        最近更新 更多