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 要求の応答時間しきい値を指定できますが、 サインイン 要求の応答時間は無視できます。
ロード テストの最大 10 のテスト条件を定義できます。 同じクライアント メトリックに対して複数の条件がある場合は、しきい値が最も低い条件が使われます。
不合格の条件の構造
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 than 、less 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 でロード テストのテスト条件を構成します。
Azure portal の Azure Load Testing リソースに移動します。
左側のウィンドウで [テスト] を選択して、ロード テストの一覧を表示します。
一覧からロード テストを選択し、[編集] を選択します。
[テスト条件] ペインで、テストの [メトリック]、[集計関数]、[条件]、[しきい値] を入力します。
必要に応じて、[要求名] 情報を入力して、特定の JMeter 要求に対するテスト条件を追加します。 値は、JMX ファイル内の JMeter サンプラーの名前と一致する必要があります。
[適用] を選択して変更を保存します。
ロード テストを実行すると、Azure Load Testing はテスト条件を使用してロード テストの実行のステータスを判断するようになります。
テストを実行し、ロード テスト ダッシュボードでステータスを表示します。
ダッシュボードに各テスト条件とそのステータスが表示されます。 少なくとも 1 つの条件が満たされた場合、テストの全体的な状態は失敗します。
自動停止の構成
Azure Load Testing は、エラーの割合が特定の時間枠の特定のしきい値を超えると、ロード テストを自動的に停止します。 自動的に停止することで、エンドポイント URL が正しく構成されていないなど、テストの失敗でさらにコストが発生することを防ぎます。
ロード テスト構成では、自動停止機能を有効または無効にし、エラーの割合のしきい値と時間枠を構成できます。 既定では、Azure Load Testing は、60 秒の時間枠中に 90% 以上のエラー率を持つロード テストを自動的に停止します。
Azure Load Testing の自動停止機能は、JMeter スクリプトの AutoStop リスナー と組み合わせて使用できます。 ロード テストは、自動停止構成または JMeter AutoStop リスナーのいずれかの条件が満たされると、自動的に停止します。
注意事項
ロード テストの自動停止を無効にすると、ロード テストが正しく構成されていない場合でもコストが発生する可能性があります。
Azure portalでロード テストの自動停止を構成するには:
Azure portal の Azure Load Testing リソースに移動します。
左側のウィンドウで [テスト] を選択して、ロード テストの一覧を表示します。
一覧からロード テストを選択し、[編集] を選択します。 または、[Create]\(作成\)> [Upload a JMeter script]\(JMeter スクリプトのアップロード\) を選択して、新しいテストを作成します。
[ テスト条件 ] タブに移動して、自動停止機能を構成します。
自動停止テスト コントロールを使用して、ロード テストの自動停止を有効または無効にします。
自動停止を有効にした場合は、[ エラーの割合 ] フィールドと [ 時間枠] フィールドに 入力できます。 時間枠を秒単位で指定します。
[ 適用] を選択するか、新しいロード テストを作成する場合は [確認と作成 ] を選択して変更を保存します。
次のステップ
シークレットを使用してロード テストをパラメーター化する方法については、ロード テストのパラメーター化に関する記事を参照してください。
パフォーマンス テストの自動化については、自動パフォーマンス テストの構成に関する記事を参照してください。