ASP.NET Core のロード テスト/ストレス テスト

ロード テストとストレス テストは、Web アプリのパフォーマンスと拡張性を確保するために重要です。 ロード テストとストレス テストは、同じようなテストを共有することがよくありますが、目的は異なります。

ロード テスト:アプリが応答の目標を満たしつつ、特定のシナリオで、指定されたユーザー負荷を処理できるかどうかをテストします。 アプリは通常の状態で実行されます。

ストレス テスト:厳しい条件下で、多くの場合長い時間実行したときのアプリの安定性をテストします。 テストにより、アプリに高いユーザー負荷が加わるか (アプリに対する急激な負荷、または徐々に増加する負荷)、またはアプリのコンピューティング リソースが制限されます。

ストレス テストでは、負荷がかかっているアプリが障害から復旧し、期待される動作に適切に戻ることができるかどうかを判断します。 ストレスでは、アプリが異常に高いストレスで実行されます。

Azure Load Testing は、大規模な負荷を生成できるフル マネージドのロード テスト サービスです。 このサービスでは、アプリのトラフィックを、それがホストされている場所に関係なくシミュレートします。 Azure Load Testing プレビューを使用すると、既存の Apache JMeter スクリプトを使って大規模な負荷を生成できます。

Visual Studio 2019 ロード テストは非推奨になりました。 対応する Azure DevOps のクラウドベースのロード テスト サービスは終了しています。

サードパーティ製のツール

次の一覧には、さまざまな機能セットを備えたサードパーティ製の Web パフォーマンス ツールが含まれています。

リリース ビルドを使用したロード テストとストレス テスト

ロード テストとストレス テストは、デバッグ モードと開発モードではなく、リリース モードと実稼働モードで実行する必要があります。 リリース構成は、最小限のログで完全に最適化されます。 デバッグ構成は最適化されません。 開発モードでは、より多くの情報ログが有効になりますが、パフォーマンスに影響を与える可能性があります。