次の方法で共有


Azure Load Testing で URL ベースのロード テストに要求を追加する

この記事では、Azure Load Testing で URL ベースのロード テストに HTTP 要求を追加する方法について説明します。 URL ベースのロード テストを使用して、ロード テスト ツールやスクリプトに関する知識がなくても、Web アプリケーションや REST エンドポイントなどの HTTP エンドポイントを検証します。

Azure サポート、URL ベースのロード テストで HTTP 要求を定義する 2 つの方法があります。 ロード テスト内で両方のメソッドを組み合わせることができます。

  • エンドポイント URL、HTTP メソッド、ヘッダー、クエリ パラメーター、要求本文などの HTTP エンドポイントの詳細を指定します。
  • HTTP 要求の cURL コマンドを入力します。

依存要求がある場合は、1 つの要求から応答値を抽出し、後続の要求に入力として渡すことができます。 たとえば、最初に顧客の詳細を取得し、顧客 ID を抽出して顧客注文の詳細を取得します。

CI/CD ワークフローで URL ベースのロード テストを使用する場合は、HTTP 要求を含む JSON ファイルをロード テストに渡すことができます。

URL ベースのロード テストには、最大 5 つの要求を追加できます。 より複雑なロード テストの場合は、JMeter テスト スクリプトをアップロードしてロード テストを作成できます。 たとえば、5 つ以上の要求がある場合、HTTP 以外のプロトコルを使用する場合、または JMeter プラグインを使用する必要がある場合などです。

前提条件

  • アクティブなサブスクリプションが含まれる Azure アカウント。 Azure サブスクリプションをお持ちでない場合は、始める前に無料アカウントを作成してください。
  • Azure ロード テスト リソース。 ロード テストのリソースを作成するには、「ロード テストの作成と実行」を参照してください。

HTTP の詳細を含む要求を追加する

HTTP 要求の詳細を指定することで、URL ベースのロード テストの HTTP 要求を指定できます。 次の表に、Azure Load Testing で HTTP 要求用に構成できるフィールドを示します。

フィールド 詳細
URL HTTP エンドポイントの URL。 たとえば、https://www.contoso.com/products のようにします。
Method HTTP メソッド。 Azure Load Testing では、GET、POST、PUT、DELETE、PATCH、HEAD、および OPTIONS がサポートされています。
クエリ パラメーター (省略可能)URL に追加するクエリ文字列パラメーターを入力します。
HTTP ヘッダー (省略可能)HTTP 要求に含める HTTP ヘッダーを入力します。 要求には最大 20 個のヘッダーを追加できます。
要求本文 (省略可能)HTTP メソッドに応じて、HTTP 本文の内容を指定できます。 Azure Load Testing では、生データ、JSON ビュー、JavaScript、HTML、XML の形式がサポートされています。

URL ベースのロード テストに HTTP 要求を追加するには、次の手順に従います。

  1. Azure portal、ロード テスト リソースに移動します。

  2. 左側のナビゲーションで、[テスト] を選択してすべてのテストを表示します。

  3. 一覧でロード テストを選択し、[編集] を選択します。

    一覧から URL ベースのロード テストを選択し、[基本] タブで [詳細設定を有効にする] を有効していることを確認します。

  4. [テスト 計画] タブに移動し、[要求の追加] を選択します

    Screenshot that shows how to add a request to a URL-based load test in the Azure portal.

  5. [UI に入力を追加する] を選択して、HTTP 要求の詳細を入力します。

  6. 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 の形式がサポートされています。

    Screenshot that shows the details page to add an HTTP request by using UI fields in the Azure portal.

  7. [適用] を選択してロード テストを保存します。

cURL を使用して要求を追加する

HTTP 要求の詳細を指定する代わりに、URL ベースのロード テストで HTTP 要求の cURL コマンドを指定することもできます。 cURL は、URL ベースの要求用のコマンド ライン ツールおよびライブラリです。

cURL コマンドを使用してロード テストに HTTP 要求を追加するには、次の手順に従います。

  1. テストの一覧でロード テストを選択し、[編集] を選択 します

    一覧から URL ベースのロード テストを選択し、[基本] タブで [詳細設定を有効にする] を有効していることを確認します。

  2. [テスト 計画] タブに移動し、[要求の追加] を選択します

  3. cURL を使用して HTTP 要求を作成するには、[cURL の追加] コマンドを選択します。

  4. cURL コマンド フィールドに cURL コマンド入力し、[追加] を選択してロード テストに要求を追加します。

    次の例では、cURL を使用して HTTP GET 要求を実行し、HTTP ヘッダーを指定します。

    curl --request GET 'http://www.contoso.com/customers?version=1' --header 'api-token: my-token'
    

    Screenshot that shows the details page to add an HTTP request by using a cURL command in the Azure portal.

  5. [適用] を選択してロード テストを保存します。

HTTP 要求で変数を使用する

HTTP 要求で変数を使用すると、テストの柔軟性を高めたり、テスト計画にシークレットを含めたりしないようにすることができます。 たとえば、エンドポイントの doメイン 名の環境変数を使用し、個々の HTTP 要求で変数名を使用できます。 変数を使用すると、テスト計画の柔軟性とメインを実現できます。

Azure Load Testing の URL ベースのロード テストでは、変数を使用して次の情報を参照できます。

要求で変数を参照するための構文は次のとおりです ${variable-name}

次のスクリーンショットは、HTTP ヘッダー${token}で変数をtoken参照する方法を示しています。

Screenshot that shows the request details page in the Azure portal, highlighting a variable reference in an HTTP header.

Note

証明書を指定すると、Azure Load Testing は各 HTTP 要求で証明書を自動的に渡します。

依存する要求に応答変数を使用する

前の要求で使用する HTTP 要求を作成するには、応答変数を使用できます。 たとえば、最初の要求では、API から項目の一覧を取得し、最初の結果から ID を抽出した後、後続の ID を作成し、この ID をクエリ文字列パラメーターとして渡します。

Azure Load Testing では、HTTP 要求から値を抽出し、変数に格納するための次のオプションがサポートされています。

  • JSONPath
  • XPath
  • 正規表現

たとえば、次の例は、XPathExtractor を使用して要求の本文を応答変数に格納する方法を token 示しています。 その後、他の HTTP 要求でこの ${token} 値を参照できます。

"responseVariables": [
    {
        "extractorType": "XPathExtractor",
        "expression": "/note/body",
        "variableName": "token"
    }
]