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

私がしなければならないもう 1 つのことは、基本的な HTTP 認証をセットアップして、ActiveMQ Web コンソールに接続できるようにすることでした。

JMX がサーバーで有効になっている場合でも、Mahesh による MBean ソリューションは機能するはずですが、デフォルトでは有効になっていません。

こちらに詳しく書いてあります

于 2013-11-20T09:28:38.510 に答える
0

キューからすべてのメッセージを消費する単純な Java クラスを作成できます。JMeter は、テストの前に実行できます。

于 2013-11-13T18:57:26.377 に答える
0

MBean を使用して、そのキューで保留中のメッセージを取得できます。 "org.apache.activemq:BrokerName=host1,Type=Queue,Destination=dest1" attribute: "QueueSize"

数秒ごとに 1 回確認し、値が 0 以下になったら、統計の記録を開始できます。

于 2013-11-17T20:08:03.177 に答える