Azure Load Testing を使用してロード テストの不合格の条件を定義する

この記事では、Azure Load Testing を使用してロード テストの不合格の条件または自動停止の条件を定義する方法について説明します。 不合格の条件によって、負荷がかかるアプリケーションに対するパフォーマンスと品質の想定を定義できます。 Azure Load Testing では、エラー率や応答時間など、不合格の条件を定義するためのさまざまなクライアント メトリックをサポートしています。 自動停止条件を使用すると、エラー率が特定のしきい値を超えたときにロード テストを自動的に停止できます。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 Azure サブスクリプションをお持ちでない場合は、始める前に無料アカウントを作成してください。
  • Azure ロード テスト リソース。 Azure Load Testing リソースを作成する必要がある場合は、ロード テストの作成と実行に関するクイックスタートを参照してください。

ロード テストの不合格の条件

ロード テストの不合格の条件は、テストが満たす必要があるクライアント側メトリックの条件です。 テスト条件は、Azure Load Testing のロード テスト レベルで定義します。 ロード テストには、1 つ以上のテスト条件を設定できます。 テスト条件の少なくとも 1 つが true と評価されると、ロード テストは不合格のステータスになります。

テスト条件は、2 つのレベルで定義できます。 ロード テストでは、さまざまなレベルで条件を組み合わせることができます。

  • ロード テスト レベルで。 たとえば、エラー率の合計がしきい値を超えないようにします。
  • JMeter 要求レベル (JMeter サンプラー) で。 たとえば、getProducts 要求の応答時間のしきい値を指定しつつ、sign in 要求の応答時間は無視するということができます。

ロード テストには、最大 50 個のテスト条件を定義できます。 同じクライアント メトリックに対して複数の条件がある場合は、しきい値が最も低い条件が使われます。

不合格の条件の構造

Azure Load Testing の不合格条件の形式は、サポートされているメトリックの条件ステートメントの形式に従います。 たとえば、1 秒あたりの要求の平均数が 500 を超えていることを確認します。

不合格条件の構造は次のとおりです。

  • ロード テスト レベルでのテスト条件: Aggregate_function (client_metric) condition threshold
  • 特定の JMeter 要求に適用されるテスト条件: Request: Aggregate_function (client_metric) condition threshold

次の表で、各コンポーネントについて説明します。

パラメーター 説明
Client metric 必須。 条件を適用するクライアント メトリック。
Aggregate function 必須。 クライアント メトリックに適用される集計関数。
Condition 必須。 greater thanless than などの比較演算子。
Threshold 必須。 クライアント メトリックと比較する数値。
Request 省略可能。 条件が適用される JMeter スクリプトのサンプラーの名前。 要求名を指定しない場合、条件はスクリプト内のすべての要求の集計に適用されます。
JMeter スクリプトのサンプラー名に個人データを含めないでください。 サンプラー名は、Azure Load Testing 結果ダッシュボードに表示されます。

不合格条件でサポートされているクライアント メトリック

Azure Load Testing では、次のクライアント メトリックがサポートされています。

メトリック 集計関数 Threshold 条件 説明
response_time_ms avg (平均)
min (最小)
max (最大)
pxx (パーセンタイル)、xx は 50、90、95、99 にすることができます
ミリ秒 (ms) を表す整数値。 > (より大きい)
< (より小さい)
応答時間または経過時間 (ミリ秒単位)。 経過時間の詳細については、「Apache JMeter のドキュメント」を参照してください。
latency avg (平均)
min (最小)
max (最大)
pxx (パーセンタイル)、xx は 50、90、95、99 にすることができます
ミリ秒 (ms) を表す整数値。 > (より大きい)
< (より小さい)
待機時間 (ミリ秒単位)。 待機時間の詳細については、「Apache JMeter のドキュメント」を参照してください。
error percentage パーセントを表す 0 - 100 の範囲の数値。 > (より大きい) 失敗した要求の割合。
requests_per_sec avg (平均) 小数点以下 2 桁までの数値。 > (より大きい)
< (より小さい)
1 秒あたりの要求回数。
requests count 整数値。 > (より大きい)
< (より小さい)
要求の合計数。

ロード テストの不合格の条件を定義する

このセクションでは、Azure portal でロード テストのテスト条件を構成します。

  1. Azure portal の Azure Load Testing リソースに移動します。

  2. 左側のウィンドウで [テスト] を選択して、ロード テストの一覧を表示します。

  3. 一覧からロード テストを選択し、[編集] を選択します。

    Screenshot of the list of tests for an Azure load testing resource in the Azure portal, highlighting the 'Edit' button.

  4. [テスト条件] ペインで、テストの [メトリック][集計関数][条件][しきい値] を入力します。

    Screenshot of the 'Test criteria' pane for a load test in the Azure portal and highlights the fields for adding a test criterion.

    必要に応じて、[要求名] 情報を入力して、特定の JMeter 要求に対するテスト条件を追加します。 値は、JMX ファイル内の JMeter サンプラーの名前と一致する必要があります。

    Screenshot of the JMeter user interface, highlighting the request name.

  5. 適用を選択して、変更を保存します。

    ロード テストを実行すると、Azure Load Testing はテスト条件を使用してロード テストの実行のステータスを判断するようになります。

  6. テストを実行し、ロード テスト ダッシュボードでステータスを表示します。

    ダッシュボードに各テスト条件とそのステータスが表示されます。 少なくとも 1 つの条件が満たされた場合、テストの全体的なステータスは不合格となります。

    Screenshot that shows the test criteria on the load test dashboard.

自動停止の構成

Azure Load Testing は、エラー率が特定の時間枠で指定されたしきい値を超えた場合、ロード テストを自動的に停止します。 自動的に停止することで、エンドポイント URL が正しく構成されていないなど、テストの失敗でさらにコストが発生することを防ぎます。

ロード テスト構成では、自動停止機能を有効または無効にし、エラー率のしきい値と時間枠を構成できます。 既定では、Azure Load Testing は、60 秒の時間枠内で少なくとも 90% のエラー率となったロード テストを自動的に停止します。

Azure Load Testing の自動停止機能は、JMeter スクリプトの AutoStop リスナーと組み合わせて使用できます。 ロード テストは、自動停止構成または JMeter AutoStop リスナーのいずれかの条件が満たされると、自動的に停止します。

注意事項

ロード テストの自動停止を無効にすると、ロード テストが正しく構成されていない場合でもコストが発生する可能性があります。

Azure portal でロード テストの自動停止を構成するには

  1. Azure portal の Azure Load Testing リソースに移動します。

  2. 左側のウィンドウで [テスト] を選択して、ロード テストの一覧を表示します。

  3. 一覧からロード テストを選択し、[編集] を選択します。 または、新しいテストを作成する場合は、[作成] > [JMeter スクリプトをアップロード] を選択します。

  4. [テスト条件] タブに移動して、自動停止機能を構成します。

    • 自動停止テスト コントロールを使用して、ロード テストの自動停止を有効または無効にします。

    • 自動停止を有効にした場合は、[エラー率][時間枠] フィールドに入力できます。 時間枠を秒単位で指定します。

      Screenshot of the 'Test criteria' pane for a load test in the Azure portal, highlighting the auto stop functionality.

  5. 新しいロード テストを作成する場合は、[適用]、または、[確認と作成] を選択して変更を保存します。

次のステップ