Azure Load Testing で URL ベースのロード テストに要求を追加する
この記事では、Azure Load Testing で URL ベースのロード テストに HTTP 要求を追加する方法について説明します。 URL ベースのロード テストを使用して、ロード テスト ツールやスクリプトに関する事前の知識なしで、Web アプリケーションや REST エンドポイントなどの HTTP エンドポイントを検証します。
Azure では、URL ベースのロード テストで HTTP 要求を定義する 2 つの方法がサポートされています。 1 つのロード テスト内で両方のメソッドを組み合わせることができます。
- エンドポイント URL、HTTP メソッド、ヘッダー、クエリ パラメーター、要求本文などの HTTP エンドポイントの詳細を指定します。
- HTTP 要求の cURL コマンドを入力します。
従属要求がある場合は、1 つの要求から応答値を抽出し、それを入力として後続の要求に渡すことができます。 たとえば、最初に顧客の詳細を取得し、顧客 ID を抽出して顧客注文の詳細を取得するとします。
CI/CD ワークフローで URL ベースのロード テストを使用する場合は、HTTP 要求を含む JSON ファイルをロード テストに渡すことができます。
URL ベースのロード テストには、最大 5 つの要求を追加できます。 より複雑なロード テストでは、Apache JMeter テスト スクリプトをアップロードすることでロード テストを作成できます。 たとえば、5 つを超える要求がある場合、HTTP 以外のプロトコルを使用する場合、または JMeter プラグインを使用する必要がある場合などです。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 Azure サブスクリプションをお持ちでない場合は、始める前に無料アカウントを作成してください。
- Azure ロード テスト リソース。 ロード テストのリソースを作成するには、「ロード テストの作成と実行」を参照してください。
HTTP の詳細を含む要求を追加する
HTTP 要求の詳細を指定することで、URL ベースのロード テストの HTTP 要求を指定できます。 次の表に、Azure Load Testing で HTTP 要求用に構成できるフィールドを示します。
フィールド | 詳細 |
---|---|
URL | HTTP エンドポイントの URL。 たとえば、https://www.contoso.com/products のようにします。 |
メソッド | HTTP メソッド。 Azure Load Testing では、GET、POST、PUT、DELETE、PATCH、HEAD、および OPTIONS がサポートされています。 |
クエリ パラメーター | (省略可能) URL に追加するクエリ文字列パラメーターを入力します。 |
HTTP ヘッダー | (省略可能) HTTP 要求に含める HTTP ヘッダーを入力します。 1 つの要求に最大 20 個のヘッダーを追加できます。 |
要求本文 | (省略可能) HTTP メソッドに応じて、HTTP 本文の内容を指定できます。 Azure Load Testing では、生データ、JSON ビュー、JavaScript、HTML、XML の形式がサポートされています。 |
URL ベースのロード テストに HTTP 要求を追加するには、次の手順に従います。
Azure portal で、ロード テスト リソースに移動します。
左側のナビゲーションで、[テスト] を選択してすべてのテストを表示します。
一覧でロード テストを選択し、[編集] を選択します。
リストから URL ベースのロード テストを選択し、[基本] タブの [詳細設定を有効にする] を有効にしていることを確認します。
[テスト計画] タブに移動し、[要求の追加] を選択します。
[UI に入力を追加する] を選択して、HTTP 要求の詳細を入力します。
HTTP 要求の詳細を入力し、[追加] を選択して、ロード テストに要求を追加します。
フィールド 説明 要求の形式 [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 の形式がサポートされています。 [適用] を選択してロード テストを保存します。
cURL を使用して要求を追加する
HTTP 要求の詳細を指定する代わりに、URL ベースのロード テストで HTTP 要求の cURL コマンドを指定することもできます。 cURL は、URL ベースの要求用のコマンド ライン ツールとライブラリです。
cURL コマンドを使用してロード テストに HTTP 要求を追加するには、次の手順に従います。
テストの一覧でロード テストを選択し、[編集] を選択します。
リストから URL ベースのロード テストを選択し、[基本] タブの [詳細設定を有効にする] を有効にしていることを確認します。
[テスト計画] タブに移動し、[要求の追加] を選択します。
[cURL コマンドの追加] を選択して、cURL を使用して HTTP 要求を作成します。
[cURL コマンド] フィールドに cURL コマンドを入力し、[追加] を選択して、ロード テストに要求を追加します。
次の例では、cURL を使用して HTTP GET 要求を実行し、HTTP ヘッダーを指定します。
curl --request GET 'http://www.contoso.com/customers?version=1' --header 'api-token: my-token'
[適用] を選択してロード テストを保存します。
HTTP 要求で変数を使用する
HTTP 要求で変数を使用すると、テストの柔軟性を高めたり、テスト計画にシークレットを含めたりしないようにすることができます。 たとえば、エンドポイントのドメイン名に環境変数を使用し、個々の HTTP 要求で変数名を使用することができます。 変数を使用すると、テスト計画の柔軟性と保守性が高まります。
Azure Load Testing の URL ベースのロード テストで、変数を使用して次の情報を参照できます。
- 環境変数: ロード テストで環境変数を構成できます
- シークレット: ロード テストで Azure Key Vault シークレットを構成します
- CSV 入力ファイルの値: CSV 入力ファイルの列に変数を使用して、ファイル内の各行について要求を実行します
- 応答変数: 以前の HTTP 要求から値を抽出します
要求内の変数を参照するための構文は次のようになります: ${variable-name}
。
次のスクリーンショットは、${token}
を使用して HTTP ヘッダー内の token
変数を参照する方法を示しています。
Note
証明書を指定すると、Azure Load Testing は各 HTTP 要求でその証明書を自動的に渡します。
従属要求に応答変数を使用する
前の要求に従属する HTTP 要求を作成するには、応答変数を使用できます。 たとえば、最初の要求では、API から項目の一覧を取得し、最初の結果から ID を抽出した後、後続の要求を作成し、この ID をクエリ文字列パラメーターとして渡します。
Azure Load Testing では、HTTP 要求から値を抽出し、その値を変数に格納するための次のオプションがサポートされています。
- JSONPath
- XPath
- 正規表現
たとえば、次の例では、XPathExtractor を使用して要求の本文を token
応答変数に格納する方法を示しています。 その後、他の HTTP 要求で ${token}
を使用して、この値を参照できます。
"responseVariables": [
{
"extractorType": "XPathExtractor",
"expression": "/note/body",
"variableName": "token"
}
]