Azure Load Testing で失敗したロード テストを診断する
この記事では、Azure Load Testing で失敗したロード テストを診断してトラブルシューティングする方法について説明します。 Azure Load Testing には、ロード テストの失敗の根本原因を特定するためのオプションがいくつか用意されています。 たとえば、ロード テスト ダッシュボードを使用したり、詳細な分析のためにテスト結果やテスト ログ ファイルをダウンロードしたりできます。 または、サーバー側のメトリックを構成して、アプリケーション エンドポイントに関する問題を特定します。
Azure Load Testing では、次の 2 つのインジケーターを使用して、ロード テストの結果を判断します。
テストの状態: ロード テストが正常に開始され、最後までテスト スクリプトを実行できたかどうかを示します。 たとえば、JMeter テスト スクリプトにエラーがある場合や、失敗した要求が多すぎるために自動停止リスナーがロード テストを中断した場合、テストの状態は [失敗] になります。
テスト結果: テストの失敗条件を評価した結果を示します。 テストの失敗条件の少なくとも 1 つが満たされた場合、テスト結果は Failed に 設定されます。
インジケーターに応じて、別のアプローチを使用して、テストエラーの根本原因を特定できます。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 Azure サブスクリプションをお持ちでない場合は、始める前に無料アカウントを作成してください。
- 完了したテスト実行がある Azure Load Testing リソース。 Azure Load Testing リソースを作成する必要がある場合は、ロード テストの作成と実行に関するページを参照してください。
ロード テストの結果を決定する
ロード テストの結果を取得するには、次の手順を使用します。
Azure portalで、ロード テスト リソースに移動します。
左側のウィンドウで [テスト ] を選択して、テストのリストを表示します。
一覧からテストを選択すると、そのテストのすべてのテストの実行が表示されます。
テストの実行の一覧には、[テスト結果] フィールドと [テスト状態] フィールドが表示されます。
または、テストの実行を選択して、テスト実行のロード テスト ダッシュボードを表示します。
テストの失敗を診断する
Azure Load Testing がテスト スクリプトを実行して完了できたかどうかに基づいて、ロード テストの失敗を診断するために別の方法を使用できます。
ロード テストの完了に失敗しました
ロード テストが完了しなかった場合、テストの 実行のテスト状態 は [失敗] に 設定されます。
複数の理由により、ロード テストの完了に失敗する可能性があります。 ロード テストが完了しない理由の例:
- JMeter テスト スクリプトにエラーがあります。
- テスト スクリプトでは、Azure Load Testing でサポートされていない JMeter 機能が使用されます。 サポートされている JMeter 機能について説明します。
- テスト スクリプトは、テスト エンジン インスタンスで使用できないファイルまたはプラグインを参照します。
- 失敗する要求が多すぎてエラー率がしきい値を超えたため、自動停止機能によってロード テストが中断されました。 Azure Load Testing の自動停止機能の詳細について説明します。
テストが完了していないと診断するには、次の手順を使用します。
- ロード テスト ダッシュボードでエラーの詳細を確認します。
- テスト ログ をダウンロードして分析し、JMeter テスト スクリプトの問題を特定します。
- テスト結果 をダウンロードして、個々の要求に関する問題を特定します。
ロード テストが完了しました
ロード テストでは、最後までテスト スクリプトを実行できますが (テストの状態は [完了] と等しくなります)、すべてのテスト失敗条件に合格しない場合があります。 テスト条件の少なくとも 1 つが合格しなかった場合、テストの 実行のテスト結果 は [失敗] に 設定されます。
テスト条件を満たしていないテストを診断するには、次の手順を使用します。
- ロード テスト ダッシュボードで テストの失敗条件 を確認します。
- ロード テスト ダッシュボードのサンプラー統計を確認して、テスト スクリプトのどの要求が問題を引き起こす可能性があるかをさらに特定します。
- ロード テスト ダッシュボードでクライアント側のメトリックを確認します。 必要に応じて、フィルター コントロールを使用して、特定の要求のグラフをフィルター処理できます。
- テスト結果 をダウンロードして、個々の要求のエラー情報を取得します。
- テスト エンジンの正常性メトリック を確認して、テスト エンジンで発生する可能性のあるリソースの競合を特定します。
- 必要に応じて、アプリ コンポーネントを追加し、 サーバー側のメトリック を監視して、アプリケーション エンドポイントのパフォーマンスのボトルネックを特定します。
ロード テスト用の Apache JMeter worker ログをダウンロードする
ロード テストを実行すると、Azure Load Testing テスト エンジンによって Apache JMeter テスト スクリプトが実行されます。 ロード テスト中、Apache JMeter は、ワーカー ノード ログの詳細なログ情報を保存します。 このテスト実行ごとの JMeter worker ログは、Azure portal でダウンロードできます。 Azure Load Testing では、テスト エンジン インスタンスごとに worker ログが生成されます。
Note
Azure Load Testing では、WARN
レベルまたは ERROR
レベルのログ メッセージのみが worker ログに記録されます。
たとえば、JMeter スクリプトに問題がある場合、ロード テストの状態は Failed になります。 ワーカー ログには、問題の原因に関する追加情報が表示される場合があります。
Azure Load Testing テストの実行のワーカー ログをダウンロードするには、次の手順に従います。
Azure portal の Azure Load Testing リソースに移動します。
[テスト] を選んでテストの一覧を表示し、一覧からロード テストを選びます。
テストの実行の一覧からテストの実行を選択して、ロード テスト ダッシュボードを表示します。
ダッシュボードで [ダウンロード] を選択し、[ログ] を選択します。
ブラウザーは、テスト エンジン インスタンスごとに JMeter ワーカー ノード ログ ファイルを含む zip フォルダーのダウンロードを開始します。
任意の zip ツールを使用してフォルダーを抽出し、ログ ファイルにアクセスできます。
この worker.log ファイルは、失敗したロード テストの根本原因を診断するのに役立つ可能性があります。 スクリーンショットでは、ファイルがないためにテストが失敗したことがわかります。
関連するコンテンツ
- ロード テストの結果をエクスポートする方法について説明します。
- サーバー側のアプリケーション メトリックを監視する 方法について説明します。
- Azure アプリ Service ベースのアプリケーションの詳細な分析情報を取得する方法について説明します。
- 複数のロード テストの実行を比較する 方法について説明します。