Azure Service Busに対してApache JMeter™からメッセージを送信する
Azure Service Busで大量のメッセージを受けてから後続に流す処理のテストをするために、Apache JMeter™を利用する方法を紹介します。
Azure Service BusのパフォーマンステストをJMeterで実施することはあまりないかもしれませんが、Azure Service Busが大量のメッセージを受け後続のコンポーネントに流す一連の処理のテストのために、JMeterで大量のメッセージを発生させることができます。
ここでは、弊社で作成したJMeterのAzure Service Busプラグインを利用して、Azure Service Busにメッセージを投げる方法を紹介します。
なお今回は、Azure Service BusにAMQPプロトコルでShared access signatureを利用してアクセスしています。
設定概要
- Azure Service Bus用JMeterプラグインを導入
- スレッドグループを追加
- Azure Service Bus Samplerを追加
- 実行結果を参照するリスナーを追加
- テストを実行
設定詳細
- Azure Service Bus用JMeterプラグインを導入
Azure Service BusにAMQPでメッセージを送信するために、Microsoft Azure plugin for Apache JMeter™のAzure Service Bus Samplerプラグインを導入します。
-
プラグインをダウンロード Webブラウザを利用して以下のページから最新のプラグイン(jmeter-plugins-azure-servicebus-{version}.jar)をダウンロードします。
https://github.com/pnopjp/jmeter-plugins/releases -
ダウンロードしたファイルをJMeterのプラグイン用ディレクトリに配置
先ほどダウンロードしたjarファイルを $JMETER_HOME/lib/ext にコピーします。$ cp jmeter-plugins-azure-servicebus-{version}.jar /usr/local/jmeter/lib/ext
-
JMeterを起動または再起動します。
-
- スレッドグループを追加
Test Planに"スレッド グループ"を追加します。
Add (追加) > Threads (Users) > Tread Group (スレッド グループ) - Azure Service Bus Samplerを追加
追加したスレッド グループに"Azure Service Bus Sampler"を追加します。
Add (追加) > Sampler (サンプラー) > Azure Service Bus Sampler
- Connection/Transaction: 今回は「Create New Connection」を選択
- Service Bus Namespace: メッセージ送信先Azure Service Bus名前空間 (ex. demo-sbq.servicebus.windows.net)
- Send messages to: Queueに対して送信するか、Topicに対して送信するかを選択
- Queue Name / Topic Name: メッセージ送信先QueueまたはTopicの名前
- Protocol: 「AMQP」か「AMQP over Web Sockets」から送信プロトコルを選択 (Proxyを通るネットワークの中でJMeterを動かす場合は「AMQP over Web Sockets」を選択する必要があるかも)
- Auth type: 今回は「Shared access signature」を選択
- Shared Access Policy: 共有アクセスポリシー名
Service Bus名前空間か、QueueあるいはTopicの共有アクセスポリシーに設定されているポリシー名 - Shared Access Key: 対象の共有アクセスポリシーのキー
- Create transaction before sending messages: 今回はOFF
- Messages
複数のメッセージを一括して送信できます。- message type: 送信するメッセージのタイプ。今回は「String」を選択。
- message: 送信するメッセージ (ex. “Hello, Azure Service Bus!”)
- message Id, session Id, partition key: メッセージに指定するパラメータ。今回は未入力。
- 実行結果を参照するリスナーを追加
Test Planかスレッドグループに"View Results Tree (結果をツリーで表示)“リスナーを追加します。 Add (追加) > Listener (リスナー) > View Results Tree (結果をツリーで表示) - テストを実行
Run (実行) > Start (開始) でテストを実行します。
Azure Portalで該当のService Busに要求やメッセージが届いていることを確認します。
参考) サンプル テストプラン ファイル
以上、今回は、Apache JMeter™でAzure Service Busにテストをする基本的な方法を紹介しました。
【宣伝】
AzureでJMeterを使うなら簡単構築Load Tester Powered by Apache JMeter™