Azure Event Hubsに対してApache JMeter™からメッセージを送信する
Azure Event Hubsで大量のメッセージを受けてから後続に流す処理のテストをするために、Apache JMeter™を利用する方法を紹介します。
Azure Event HubsのパフォーマンステストをJMeterで実施することはあまりないかもしれませんが、Azure Event Hubsが大量のメッセージを受け後続のコンポーネントに流す一連の処理のテストのために、JMeterで大量のメッセージを発生させることができます。
ここでは、弊社で作成したJMeterのAzure Event Hubsプラグインを利用して、Azure Event Hubsにメッセージを投げる方法を紹介します。
なお今回は、Azure Event HubsにAMQPプロトコルでShared Access Signatureを利用してアクセスしています。
設定概要
- Azure Event Hubs用JMeterプラグインを導入
- スレッドグループを追加
- Azure Event Hubs Samplerを追加
- 実行結果を参照するリスナーを追加
- テストを実行
設定詳細
- Azure Event Hubs用JMeterプラグインを導入
Azure Event HubsにAMQPでメッセージを送信するために、Microsoft Azure plugin for Apache JMeter™のAzure Event Hubs Samplerプラグインを導入します。
-
プラグインをダウンロード Webブラウザを利用して以下のページから最新のプラグイン(jmeter-plugins-azure-eventhubs-{version}.jar)をダウンロードします。
https://github.com/pnopjp/jmeter-plugins/releases -
ダウンロードしたファイルをJMeterのプラグイン用ディレクトリに配置
先ほどダウンロードしたjarファイルを $JMETER_HOME/lib/ext にコピーします。$ cp jmeter-plugins-azure-eventhubs-{version}.jar /usr/local/jmeter/lib/ext
-
JMeterを起動または再起動します。
-
- スレッドグループを追加
Test Planに"スレッド グループ"を追加します。
Add (追加) > Threads (Users) > Tread Group (スレッド グループ) - Azure Event Hubs Samplerを追加
追加したスレッド グループに"Azure Event Hubs Sampler"を追加します。
Add (追加) > Sampler (サンプラー) > Azure Event Hubs Sampler
- Event Hubs Namespace: メッセージ送信先Azure Event Hubs名前空間 (ex. demo-eh.servicebus.windows.net)
- Event Hub: メッセージ送信先Event Hub
- Partition: メッセージを投入するパーティション
「Partition ID」、「Partition Key」、「指定しない」から選択してIDまたはキーを入力 - Auth type: 今回は「Shared Access Signature」を選択
- Shared Access Policy: 共有アクセスポリシー名
Event Hubs名前空間か、Event Hubの共有アクセスポリシーに設定されているポリシー名 - Shared Access Key: 対象の共有アクセスポリシーのキー
- Event data
複数のメッセージを一括して送信できます。- message type: 送信するメッセージのタイプ。「UTF-8文字列(String)」「バイナリをBase64エンコードした文字列(Base64 encoded binary)」、「ファイル(File)」から選択します。
- message: 送信するメッセージ (Fileを選択した場合はフルパスでのファイル名 ex. /tmp/demo.png)
- 実行結果を参照するリスナーを追加
Test Planかスレッドグループに"View Results Tree (結果をツリーで表示)“リスナーを追加します。 Add (追加) > Listener (リスナー) > View Results Tree (結果をツリーで表示) - テストを実行
Run (実行) > Start (開始) でテストを実行します。
Azure Portalで該当のEvent Hubsに要求やメッセージが届いていることを確認します。
参考までに、今回作成したTest Planを以下にアップロードしました。
https://github.com/pnopjp/jmeter-plugins/raw/master/samples/AzEventHubsSampler.jmx
以上、今回は、Apache JMeter™でAzure Event Hubsにテストをする基本的な方法を紹介しました。
【宣伝】
AzureでJMeterを使うなら簡単構築Load Tester Powered by Apache JMeter™