Azure Load Testing でのテストの作成と管理
Azure ロード テスト リソースで ロード テスト を作成および管理する方法について説明します。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 Azure サブスクリプションをお持ちでない場合は、始める前に無料アカウントを作成してください。
- Azure ロード テスト リソース。 ロード テストのリソースを作成するには、「ロード テストの作成と実行」を参照してください。
テストの作成
Azure portal でロード テストを作成するには、次の 2 つのオプションがあります:
- Web アプリケーション URL (URL ベースのテスト) を使用してクイック テストを作成します。
- JMeter テスト スクリプト (JMX) をアップロードしてテストを作成します。
URL を使用してクイック テストを作成する
1 つの HTTP エンドポイントをロード テストするには、Azure portal のクイック テスト エクスペリエンス ( URL ベースのロード テストとも呼ばれます) を使用できます。 ターゲット URL と基本的な読み込みパラメータを入力して、JMeter スクリプトに関する知識がなくてもロード テストを作成します。
クイック テストを作成すると、Azure Load Testing によって対応する JMeter スクリプトが生成され、ロード テストの構成が決定され、ロード テストが実行されます。
ターゲットの負荷を指定するには、2 つのオプションから選択します。 その後、オプションごとに異なる設定を入力して、アプリケーションの負荷を定義できます。
負荷型 | 説明 | 負荷の設定 |
---|---|---|
仮想ユーザー | ロード テストでは、仮想ユーザーのターゲット数がシミュレートされます。 ターゲットは、ランプアップ時間中に増分されます。 Azure Load Testing では、テスト エンジン インスタンスの合計数が次のように構成されます:#instances = #virtual users / 250 その後、各テスト エンジン インスタンスは、(#total 仮想ユーザー/#テスト エンジン) 仮想ユーザーをシミュレートします。 クイック テストの仮想ユーザーの最大数は 11250 です。 |
- 仮想ユーザーの数 - テスト期間 (秒単位) - 立ち上がり時間 (秒単位) |
1 秒あたりの要求 | ロード テストでは、エンドポイントの推定応答時間を指定して、1 秒あたりの要求数 (RPS) のターゲットをシミュレートします。 Azure Load Testing は、RPS と応答時間に基づいて、ロード テストの仮想ユーザーの合計数を決定します: #virtual users = (RPS * response time) / 1000 その後、サービスは、仮想ユーザーの合計数に基づいて、インスタンスごとのテスト エンジン インスタンスと仮想ユーザーの数を構成します。 |
- 1 秒あたりの要求数 - 応答時間 (ミリ秒単位) - テスト期間 (秒単位) - 立ち上がり時間 (秒単位) |
Azure portal でクイック テストを作成するには:
Azure portalで、ロード テスト リソースに移動します。
[概要] ページで [クイック テスト] を選択します。
または、左側のウィンドウで [テスト] を選択し、[+ 作成] を選択して [Create a quick test]\(クイック テストの作成\) を選択します。
ターゲット URL を入力し、パラメータを読み込みます。
[テストの実行] を選択して、ロード テストを開始します。
Azure Load Testing によって、JMeter テスト スクリプトが自動的に生成され、ロード パラメーターに基づいて、複数のテスト エンジンにスケーリングするようにテストが構成されます。
クイック テストを実行した後、ロード テスト構成 をさらに編集できます。 たとえば、アプリ コンポーネントを追加して、サーバー側のメトリックを監視 、高スケールの負荷を構成 、または生成された JMeter スクリプトを編集できます。
JMeter スクリプトを使用してテストを作成する
既存の JMeter テスト スクリプトを再利用する場合や、さらに高度なテスト シナリオの場合には、JMX ファイルをアップロードしてテストを作成します。 たとえば、CSV 入力ファイルのデータの読み取りまたはJMeter ユーザー プロパティの構成を行います。 詳細については、既存の JMeter スクリプトを使用したロード テストの作成に関するページを参照してください。
JMeter スクリプトの作成に慣れていない場合は、Apache JMeter の概要に関するページを参照してください。
Azure portalで、ロード テスト リソースに移動します。
[概要] ページで [作成] を選択します。
または、左側のウィンドウで [テスト] を選択し、[+ 作成] を選択して [Upload a JMeter script]\(JMeter スクリプトのアップロード\) を選択します。
[基本] ページで、基本的なテスト情報を入力します。
[Run test after creation]\(作成後にテストを実行\) を選択すると、テストが自動的に開始します。 テストは、作成後にいつでも手動で開始できます。
テスト計画
テスト計画には、ロード テストの実行に必要なすべてのファイルが含まれています。 テスト計画には少なくとも 1 つの *.jmx
JMeter スクリプトが含まれている必要があります。 Azure Load Testing では、ロード テストごとに 1 つの JMX ファイルのみがサポートされます。
テスト スクリプトと共に、ユーザー プロパティ ファイル、構成ファイル、または入力データ ファイル (CSV ファイルなど) をアップロードできます。
[テスト計画] に移動します。
ローカル コンピューターのすべてのファイルを選択し、それらを Azure にアップロードします。
Azure Load Testing では、すべてのファイルが 1 つのリポジトリに保存されます。 テスト スクリプトで構成ファイルまたはデータ ファイルを参照する場合は、JMX ファイル内の相対パス名を必ず削除してください。
テストで CSV 入力データを使用する場合は、 テスト エンジン間で CSV を均等に分割を有効にできます。
既定では、Azure Load Testing は、入力ファイルをコピーしたまま変更せずに、すべてのテスト エンジン インスタンスで処理します。 Azure Load Testing では、CSV 入力データをすべてのエンジン インスタンスに均等に分割することができます。 複数の CSV ファイルがある場合、各ファイルは均等に分割されます。
たとえば、顧客の CSV 入力ファイルが大きく、ロード テストが 10 個の並列テスト エンジンで実行されている場合、各インスタンスは顧客の 1/10 分の 1 をプロセスします。 ロード テストで CSV ファイル読み取る 方法について説明します。
ヒント
リストでファイル名を選択すると、 テスト 計画 タブからファイルをダウンロードできます。 たとえば、生成された JMeter スクリプトをダウンロードして簡単なテストを行い、変更してから、ファイルをもう一度アップロードすることができます。
パラメーター
JMeter スクリプトで値をハードコーディングする代わりに、パラメータを使用してテスト計画を構成できます。 ロード テスト構成でキーと値のペアを指定し、パラメータ名を使用して JMeter スクリプトの値を参照します。 詳細については、環境変数とシークレットを使用したロード テストのパラメーター化に関する記事を参照してください。
非センシーティブ パラメータをテスト スクリプトに渡す環境変数を指定します。
たとえば、環境変数を使用して、ターゲット ドメイン名またはポート番号をテスト スクリプトに渡すことができます。 ロード テストで環境変数を使用する の詳細について説明します。
Azure Key Vault によってサポートされるシークレットへの参照を追加します。
シークレットを使用して、パスワードや認証トークンなどの機密性の高いパラメータをテスト スクリプトに渡します。 シークレット値を Azure キー コンテナーに保存し、ロード テスト構成でキーへの参照を追加します。 その後、パラメータ名を使用して、スクリプト内のキーを参照できます。 その後、Azure Load Testing は Azure Key Vault からキー値を取得します。
ロード テストでシークレットを使用する の詳細について説明します。
Azure Key Vault によってサポートされるクライアント証明書への参照を追加します。
証明書ベースの認証を使用するアプリケーション エンドポイントをロード テストする場合は、Azure Key Vault に証明書を追加し、ロード テスト構成で証明書への参照を追加できます。 Azure Load Testing では、JMeter スクリプトの Web 要求に証明書が自動的に挿入されます。
Azure Load Testing で証明書ベースの認証を使用するの詳細について説明します。
シークレットまたは証明書のキー コンテナーへのアクセスに使用するマネージド ID を選択します。
Azure Load Testing でマネージド ID を使用するの詳細について説明します。
積載量
テスト エンジン インスタンスの数を指定します。
Azure Load Testing では、すべてのインスタンスでロード テストが自動的にスケーリングされます。 JMeter テスト スクリプトは、すべてのインスタンスで並列に実行されます。 シミュレートされたユーザーの合計数は、JMeter スクリプトで指定した仮想ユーザー (スレッド) の数と、テスト エンジン インスタンスの数の倍数になります。 詳細については、高スケール ロード向けテストの構成に関する記事を参照してください。
仮想ネットワーク接続を構成します。
ロード テストを Azure 仮想ネットワークに接続して、プライベートにホストされているエンドポイントまたはオンプレミスエンドポイントをロード テストできます。 仮想ネットワークに Azure Load Testing をデプロイするシナリオについて詳しく説明します。
仮想ネットワークに接続するには、 プライベートトラフィック モードを選択し、 仮想ネットワーク とサブネット を選択します。
テストの条件
クライアント メトリックに基づいてテストエラーの条件を指定します。
ロード テストがメトリックのしきい値を超えると、ロード テストは失敗した状態になります。 Azure Load Testing では現在、失敗条件に対して次のクライアント側メトリックがサポートされています:
- 応答時間
- 1 秒あたりの要求数
- 要求の合計数
- Latency
- エラーの割合
ロード テスト全体の失敗条件を指定するか、JMeter スクリプトで特定の要求に割り当てることができます。 たとえば、ホーム ページの応答時間が特定の応答時間を超えていないことを検証します。 詳細については、「 テストの失敗条件を構成する」を参照してください。
自動停止条件を構成します。
Azure Load Testing では、エラー率が特定のしきい値を超えると、ロード テストの実行を自動的に停止できます。 この機能を有効または無効にしたり、特定のエラー率のしきい値と時間枠を構成したりできます。 自動停止条件 の構成の詳細について説明します。
監視
Azure でホストされるアプリケーションの場合は、ロード テストの実行中に監視する Azure アプリ コンポーネントを追加します。 Azure Load Testing では、選択した Azure アプリ コンポーネントの詳細なリソース メトリックがキャプチャされます。 これらのメトリックを使用して、アプリケーションの潜在的なパフォーマンスボトルネックを特定します 。
アプリ コンポーネントを追加すると、Azure Load Testing によって、コンポーネントに最も関連するリソース メトリックが自動的に選択されます。 アプリ コンポーネントそれぞれのリソース メトリックはいつでも追加または削除できます。
ロード テストが完了すると、テスト結果ダッシュボードに、Azure アプリ コンポーネントとリソース メトリックそれぞれのグラフが表示されます。
詳細については、サーバー側の監視の構成に関する記事を参照してください。
テストを実行する
ロード テストを実行または再実行すると、Azure Load Testing は最新のロード テスト構成設定を使用して新しいテスト実行を作成します。 テスト構成 を編集、 変更を適用した後にテストを実行する チェック ボックスをチェックするなら、変更を保存した後にロード テストが自動的に開始されます。
Azure portal でロード テストを実行するには:
Azure portalで、ロード テスト リソースに移動します。
左側のウィンドウの テスト を選択し、リストでテスト名を選択してテストの詳細に移動します。
[実行] を選択します。
[ 実行 ] ページで、テスト実行の説明を入力し、ロード テスト パラメータをオーバーライドすることができます。
[ 実行 ] を選択してロード テストを開始します。
指定した説明を使用して、サービスによって新しいテスト実行が作成されます。
テストを編集する
ロード テストの構成設定を編集すると、これらの設定が 将来の テスト実行に使用されます。 以前の テスト実行を再実行すると、テストの更新された設定ではなく、テスト実行の設定が使用されます。
Azure portal でテストを編集するには:
Azure portalで、ロード テスト リソースに移動します。
左側のウィンドウの テスト を選択し、対応するチェック ボックスをオンにしてリストからテストを選択します。
[ 編集 ] を選択して、テスト構成設定を更新します。
または、リストからテストを選択し、 [構成>テスト] を選択します。
[テスト 編集 ] ページ [適用 ] を選択して変更を保存します。
次にテストを実行 した場合は、更新されたテスト構成設定が使用されます。
テストを削除する
Azure portal でテストを削除するには:
Azure portalで、ロード テスト リソースに移動します。
左側のウィンドウの テスト を選択し、対応するチェック ボックスをオンにしてリストからテストを選択します。
[ テストの削除 ] を選択して、テストを削除します。
または、リストからテストを選択し、テストの詳細 ページの [テストの削除] を選択します。
[テストの削除 ] ページで、[ 削除 ]を選択して、テストの削除を確認します。
注意事項
テストを削除すると、すべてのテスト実行、ログ、結果、メトリック データも削除されます。