Azure Load Testing で JMeter ユーザー プロパティを使用する
この記事では、Azure Load Testing で Apache JMeter ユーザー プロパティを構成して使用する方法について説明します。 ユーザー プロパティを使用すると、テスト設定を JMeter テスト スクリプトの外部に保持して、テストを構成可能にすることができます。 ユーザー プロパティのユース ケースは次のとおりです。
- アプリケーション エンドポイントが異なる複数のデプロイ環境で JMX テスト スクリプトを使用したい。
- テスト スクリプトで、スモーク テスト、ピーク ロード、ソーク テストなど、複数のロード パターンに対応する必要がある。
- JMeter 設定 (結果ファイルの形式など) を構成して、既定の JMeter 動作をオーバーライドしたい。
Azure Load Testing では、標準の Apache JMeter プロパティがサポートされており、ユーザーがユーザー プロパティ ファイルをアップロードできます。 ユーザーは、ロード テストごとに 1 つのユーザー プロパティ ファイルを構成できます。
または、Azure Load Testing で環境変数とシークレットを使用して、テストを構成可能にすることもできます。
Note
Azure Load Testing では、特定の JMeter プロパティはオーバーライドされ、これらのプロパティに指定した値は無視されます。 詳細については、Azure Load Testing でオーバーライドされる JMeter プロパティの一覧をご覧ください。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 Azure サブスクリプションをお持ちでない場合は、始める前に無料アカウントを作成してください。
- Azure Load Testing リソース。 Azure Load Testing リソースを作成する必要がある場合は、ロード テストの作成と実行に関するクイックスタートを参照してください。
JMeter ユーザー プロパティ ファイルをロード テストに追加する
ロード テストに .properties ファイルをアップロードすることで、JMeter テスト スクリプトのユーザー プロパティを定義できます。 Azure Load Testing では、ロード テストごとに 1 つのプロパティ ファイルがサポートされます。 追加のプロパティ ファイルは無視されます。
次のコード スニペットは、3 つのユーザー プロパティを定義し、jmeter.save.saveservice.thread_name
構成設定を構成するユーザー プロパティ ファイルの例を示しています。
# peak-load.properties
# User properties for testing peak load
threadCount=250
rampUpSeconds=30
durationSeconds=600
# Override default JMeter properties
jmeter.save.saveservice.thread_name=false
Azure portal を使用してロード テストにユーザー プロパティ ファイルを追加するには、次の手順に従います。
Azure portal の Azure Load Testing リソースに移動します。
左側のウィンドウで [テスト] を選択して、テストの一覧を表示します。
次に、チェック ボックスをオンにしてリストからテストを選択し、[編集] を選択します。 または、[テストの作成] を選択して新しいロード テストを作成します。
[テスト計画] タブを選択します。
お使いのコンピューターからプロパティ ファイルを選択し、[アップロード] を選択して Azure にファイルをアップロードします。
[ファイルの関連性] ドロップダウン リストで [ユーザー プロパティ] を選択します。
ロード テストのユーザー プロパティ ファイルとして選択できるファイルは 1 つだけです。
[適用] を選択してテストを変更するか、[確認および作成] を選択した後に [作成] を選択して新しいテストを作成します。
JMeter でプロパティを参照する
Azure Load Testing では、JMeter テスト スクリプト (JMX) でユーザー プロパティを参照するための組み込みの Apache JMeter 機能がサポートされています。 __property または __P 関数を使用して、前にアップロードしたプロパティ ファイルからプロパティ値を取得できます。
次のコード スニペットは、JMX ファイルでプロパティを参照する方法の例を示したものです。
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Test home page" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<intProp name="LoopController.loops">-1</intProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">${__P(threadCount,1)}</stringProp>
<stringProp name="ThreadGroup.ramp_time">${__P(rampUpSeconds,1)}</stringProp>
<boolProp name="ThreadGroup.scheduler">true</boolProp>
<stringProp name="ThreadGroup.duration">${__P(durationSeconds,30)}</stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
</ThreadGroup>
なお、プロパティは JMeter ユーザー インターフェイスで指定することもできます。 次の図は、プロパティを使用して JMeter スレッド グループを構成する方法を示したものです。
JMeter エラー ログをダウンロードして、ロード テスト中のエラーのトラブルシューティングを行うことができます。
次のステップ
- 詳細については、Azure Load Testing でオーバーライドされる JMeter プロパティに関する説明をお読みください。。
- 環境変数とシークレットを使用してロード テストをパラメーター化する方法について説明します。
- 失敗したロード テストの診断の詳細について説明します。