クイックスタート: Azure Load Testing を使用してロード テストを作成して実行する
このクイック スタートでは、Azure portal で Azure Load Testing を使用して URL ベースのテストを作成することで、Web アプリケーションをロード テストします。 URL ベースのテストを使用すると、ロード テスト ツールやスクリプトに関する知識がなくてもロード テストを作成できます。 Azure portal エクスペリエンスを使用し、HTTP 要求を指定して、ロード テストを構成します。
URL ベースのロード テストを作成するには、次の手順を実行します:
- Azure Load Testing のリソースを作成する
- Web アプリケーション エンドポイントと基本的な負荷構成パラメーターを指定します。
- 必要に応じて、HTTP エンドポイントをさらに追加します。
このクイックスタートを完了すると、他のチュートリアルに使用できるリソースとロード テストが作成されます。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- 共同作成者または所有者ロールなど、サブスクリプション内のリソースを作成および管理するためのアクセス許可を持つ Azure アカウント。
どのような問題が解決されますか?
アプリケーションをデプロイする前に、アプリケーションが予想される負荷をサポートできることを確認する必要があります。 ロード テストを使用して、アプリケーションへのユーザー トラフィックをシミュレートし、アプリケーションが要件を満たしていることを確認できます。 負荷をシミュレートするには、複雑なインフラストラクチャのセットアップが必要になる場合があります。 また、開発者は、ロード テスト ツールとテスト スクリプト構文に慣れていない可能性もあります。
このクイック スタートでは、Azure Load Testing を使用して、アプリケーション エンドポイントのロード テストを作成します。 ロード テスト ツールやスクリプト作成に関する知識がなくても、Azure portal でアプリケーションの HTTP 要求を追加するだけで、ロード テストを構成することができます。
Azure Load Testing のリソースを作成する
まず、Azure Load Testing の最上位リソースを作成します。 これによって、テスト計画、テスト結果、および関連する成果物を表示および管理するための一元的な場所が提供されます。
既にロード テスト リソースがある場合は、このセクションをスキップして、「ロード テストを作成する」に進んでください。
ロード テストのリソースを作成します。
ご利用の Azure サブスクリプションの資格情報を使って、Azure portal にサインインします。
Azure portal のメニューまたは [ホーム] ページから [リソースの作成] を選択します。
Marketplace ページで、Azure Load Testing を検索して選択します。
[Azure Load Testing] ペインで、[作成] を選択します。
[ロード テスト リソースの作成] ページで、次の情報を入力します。
フィールド 説明 サブスクリプション この Azure Load Testing リソースに使用する Azure サブスクリプションを選択します。 リソース グループ 既存のリソース グループを選択します。 または、[新規作成] を選択し、新しいリソース グループの一意の名前を入力します。 名前 Azure Load Testing リソースを識別するための一意の名前を入力します。
名前には、\/""[]:|<>+=;,?*@& などの特殊文字や空白を含めることはできません。 名前の先頭をアンダースコア (_) にすることはできません。また、末尾をピリオド (.) またはダッシュ (-) にすることもできません。 長さは 1 から 64 文字にする必要があります。場所 Azure Load Testing リソースをホストする地理的な場所を選択します。
この場所により、テスト エンジンがホストされる場所や、テスト フレームワークの要求が発信される場所も決まります。Note
必要に応じて、[タグ] タブでさらに詳細を構成できます。タグは名前と値のペアであり、同じタグを複数のリソースやリソース グループに適用することで、リソースを分類したり、統合された課金を表示したりできるようにします。
リソースの構成が完了したら、[確認および作成] を選択します。
指定した設定を確認し、[作成] を選択します。 アカウントの作成には数分かかります。 ポータル ページに "デプロイが完了しました" と表示されるまで待ってから移動します。
新しいリソースを表示するには、[リソースに移動] を選択します。
必要に応じて、Azure Load Testing リソースへのアクセスを管理します。
Azure Load Testing によって、ロールベースのアクセス制御 (RBAC) が使用され、リソースのアクセス許可が管理されます。 このメッセージが表示された場合、アカウントには、テストを管理するために必要なアクセス許可がありません。
ロード テストの作成
Azure Load Testing を使用すると、ターゲット Web アプリケーション URL と基本的なロード テスト パラメーターを指定することで、Azure portal からロード テストをすばやく作成できます。 サービスでは、ロード テスト スクリプトの作成とコンピューティング インフラストラクチャのプロビジョニングの複雑さが抽象化されます。
Web エンドポイントのロード テストを作成するには:
Azure Load Testing リソースの [概要] ページに移動します。
[作業の開始] タブで、[HTTP 要求の追加]>[作成] を選択します。
[基本] タブで、ロード テストの詳細を入力します:
フィールド 説明 テスト名 一意のテスト名を入力します。 テストの説明 (省略可能)ロード テストの説明を入力します。 作成後にテストを実行する 選択済。 ロード テストを保存すると、テストが自動的に開始されます。 詳細設定を有効にする オフのままにします。 詳細設定を使用すると、複数の HTTP 要求を追加し、より高度なロード テスト設定を構成できます。 次に、アプリケーション エンドポイントとロード テスト パラメーターを構成します:
フィールド 説明 テスト URL テストを実行したい完全な URL を入力します。 たとえば、 https://www.example.com/products
のようにします。負荷を指定する 想定の仮想ユーザー数に基づいてシミュレートされた負荷を指定するために、[仮想ユーザー] を選択します。 仮想ユーザーの数 シミュレートする仮想ユーザーの合計数を入力します。
Azure Load Testing では、シミュレートされた負荷が並列テスト エンジン インスタンス間で均等に分散され、各エンジンは最大 250 人の仮想ユーザーを処理します。 たとえば、400 人の仮想ユーザーを入力すると、それぞれ 200 人の仮想ユーザーを持つ 2 つのインスタンスが作成されます。テスト期間 (分) ロード テストの期間を分単位で入力します。 ランプアップ時間 (分) ロード テストのランプアップ時間を分単位で入力します。 ランプアップ時間は、仮想ユーザーの目標数に達するまでの時間です。 または、1 秒あたりの要求数 (RPS) を選択して、1 秒あたりの要求回数のターゲット数に基づいてシミュレートされた負荷を構成します。
[確認と作成] を選択してロード テストの構成を確認した後、[作成] を選択してロード テストを開始します。
ロード テストが保存されると、Azure Load Testing によってロード テスト スクリプトが生成され、アプリケーション エンドポイントへのトラフィックがシミュレートされます。 次に、サービスはターゲットの負荷をシミュレートするためのインフラストラクチャをプロビジョニングします。
テスト結果の表示
ロード テストが開始されると、テストの実行ダッシュボードにリダイレクトされます。 ロード テストの実行中、Azure Load Testing によって、クライアント側のメトリックとサーバー側メトリックの両方がキャプチャされます。 このセクションでは、ダッシュボードを使用して、クライアント側のメトリックを監視します。
テストの実行ダッシュボードに、テストが実行する間ストリーミングでクライアント側のメトリックを確認できます。 既定では、データは 5 秒ごとに更新されます。
ロード テストが完了すると、合計要求数、期間、平均応答時間、エラー率、スループットなど、ロード テストの概要の統計情報を表示できます。
必要に応じて、表示フィルターを変更して、特定の時間範囲、結果のパーセンタイル、またはエラーの種類を表示します。
ロード テストに要求を追加する
Azure Load Testing では、複数の要求を含む URL ベースのロード テストを作成できます。 ロード テストに最大 5 つの HTTP 要求を追加し、GET、POST などの任意の HTTP メソッドを使用できます。
前に作成したロード テストに HTTP 要求を追加するには:
Azure portal の Azure Load Testing リソースに移動します。
左側のナビゲーションで、[テスト] を選択してすべてのテストを表示します。
次に、対応するチェック ボックスをオンにしてリストからテストを選択し、[編集] を選択します。
[基本] タブで、[詳細設定を有効にする] を選択します。
詳細設定を使用すると、1 つのロード テストに対して複数の HTTP 要求を定義できます。 さらに、テスト条件と高度な負荷パラメーターを構成することもできます。
詳細設定に切り替えると、テスト URL はテストに自動的に追加されません。 ロード テストにテスト URL を再追加する必要があります。
[テスト 計画 ] タブに移動し、[要求の追加] を選択してロード テストに要求を追加します。
[要求の追加] ページで、要求の詳細を入力し、[追加] を選択します。
フィールド 説明 要求の形式 [UI に入力を追加する] を選択して、Azure portal のフィールドを使用して要求の詳細を構成します。 要求の名前 要求に一意の名前を入力します。 テストの失敗条件を定義するときに、この要求名を参照できます。 URL アプリケーション エンドポイントの URL。 方法 一覧から HTTP メソッドを選択します。 Azure Load Testing では、GET、POST、PUT、DELETE、PATCH、HEAD、および OPTIONS がサポートされています。 クエリ パラメーター (省略可能) URL に追加するクエリ文字列パラメーターを入力します。 ヘッダー (省略可能) HTTP 要求に含める HTTP ヘッダーを入力します。 本文 (省略可能) HTTP メソッドに応じて、HTTP 本文の内容を指定できます。 Azure Load Testing では、生データ、JSON ビュー、JavaScript、HTML、XML の形式がサポートされています。 (省略可能) ロード テストにさらに要求を追加します。
(省略可能) [負荷] タブで、負荷パラメーターを構成します。
詳細設定を使用すると、テスト エンジン インスタンスの数を構成し、さまざまなロード パターンから選択できます。
[適用] を選択してロード テスト構成を更新します。
[テスト] ページでテストを選択し、[実行] を選択して、更新された構成でロード テストを実行します。
テスト実行ダッシュボードには、ロード テストのさまざまな HTTP 要求のメトリックが表示されます。 [要求] フィルターを使用すると、特定の要求のメトリックのみを表示できます。
問題をどのように解決したか。
このクイック スタートでは、スクリプトやロード テスト ツールを使用せずに、Azure portal で URL ベースのロード テストを完全に作成しました。 HTTP 要求を追加してロード テストを構成した後、ロード テスト ダッシュボードを使用してロード テスト クライアント側のメトリックを分析し、テスト対象のアプリケーションのパフォーマンスを評価しました。 Azure Load Testing は、アプリケーションの大規模なユーザー負荷をシミュレートするためのインフラストラクチャの設定の複雑さを抽象化します。
さらにロード テストを拡張して、負荷が発生しているアプリケーションのサーバー側メトリックを監視したり、アプリケーションが要件を満たしていない場合にアラートを受け取るテスト失敗メトリックを指定したりできます。 アプリケーションのパフォーマンスを維持するために、継続的インテグレーションと継続的配置 (CI/CD) ワークフローの一部としてロード テストを統合することもできます。
リソースをクリーンアップする
重要
作成した Azure Load Testing リソースは、他の Azure Load Testing チュートリアルおよびハウツー記事で再利用できます。
作成したどのリソースも使用する予定がない場合は、追加の課金が発生しないように削除します。 別のリソース グループにサンプル アプリケーションをデプロイした場合は、次の手順を繰り返します。
Azure portal を使用してリソースを削除するには、次のようにします。
左上隅にあるメニュー ボタンを選択して、[リソース グループ] を選択します。
一覧から、作成したリソース グループを選択します。
[リソース グループの削除] を選択します。
リソース グループ名を入力します。 次に、 [削除] を選択します。
Azure CLI を使用してリソースを削除するには、次のコマンドを入力します。
az group delete --name <yourresourcegroup>
リソース グループを削除すると、そのグループに含まれるすべてのリソースが削除されるので注意してください。