ロード テストを実行するために CI/CD ワークフローを手動で構成する

CI/CD パイプラインを作成することで、Azure Load Testing でロード テストを自動化できます。 この記事では、Azure Load Testing で既存のテストを呼び出すように GitHub Actions、Azure Pipelines、またはその他の CI ツールを手動で構成する方法について説明します。 ロード テストを自動化し、負荷条件下でアプリケーションのパフォーマンスと安定性を継続的に検証します。

次の手順で CI/CD パイプラインに既存のロード テストを追加します。

  • CI ツールが Azure ロード テスト リソースに接続できるようにサービス認証を構成します。
  • JMeter テスト スクリプトやロード テスト YAML 構成など、ロード テスト入力ファイルをリポジトリに追加します。
  • AZURE Load Testing を呼び出すように CI/CD パイプライン定義を更新します。

前提条件

  • Azure DevOps 組織とプロジェクト。 Azure DevOps 組織がない場合は、無料で作成できます。 Azure Pipelines で作業を開始するときに支援が必要な場合は、「最初のパイプラインの作成」を参照してください。

サービス認証を構成する

CI/CD ワークフローでロード テストを実行するには、ロード テスト リソースにアクセスするためのアクセス許可を CI/CD ワークフローに付与する必要があります。 CI/CD ワークフローのサービス プリンシパルを作成し、ロード テスト共同作成者 Azure RBAC ロールを割り当てます。

Azure Pipelines でサービス接続を作成する

Azure Pipelines で、Azure DevOps プロジェクトにサービス接続を作成して、Azure サブスクリプション内のリソースにアクセスします。 サービス接続を作成すると、Azure DevOps によって Microsoft Entra サービス プリンシパル オブジェクトが作成されます。

  1. Azure DevOps 組織 (https://dev.azure.com/<your-organization>) にサインインし、プロジェクトを選択します。

    <your-organization> テキスト プレースホルダーをプロジェクト識別子に置き換えます。

  2. [プロジェクトの設定]>[サービス接続]>[+ New service connection] (+ 新しいサービス接続) の順に選択します。

  3. [新しいサービス接続] ウィンドウで、[Azure Resource Manager] を選択して、[次へ] を選択します。

  4. [サービス プリンシパル (自動)] 認証方法を選択し、[次へ] を選択します。

  5. サービス接続の詳細を入力し、[保存] を選択してサービス接続を作成します。

    フィールド
    スコープのレベル [サブスクリプション]
    サブスクリプション ロード テスト リソースをホストする Azure サブスクリプションを選択します。
    リソース グループ ロード テスト リソースが含まれるリソース グループを選択します。
    サービス接続名 サービス接続の一意の名前を入力します。
    すべてのパイプラインへのアクセス許可を与える オン。
  6. サービス接続の一覧から、前に作成した接続を選択し、[サービス プリンシパルの管理] を選択します。

    Screenshot that shows selections for managing a service principal.

    Azure portal が別のブラウザー タブで開き、サービス プリンシパルの詳細が表示されます。

  7. Azure portal で、[表示名] の値をコピーします。

    次の手順でこの値を使用して、ロード テストを実行するためのアクセス許可をサービス プリンシパルに付与します。

Azure Load Testing へのアクセスを許可する

Azure Load Testing では、Azure RBAC を使用して、ロード テスト リソースで特定のアクティビティを実行するためのアクセス許可を付与します。 CI/CD パイプラインからロード テストを実行するには、ロード テスト共同作成者ロールをサービス プリンシパルに付与します。

  1. Azure portal の Azure Load Testing リソースに移動します。

  2. [アクセス制御 (IAM)]>[追加]>[ロールの割り当ての追加] の順に選択します。

  3. [ロール] タブのジョブ関数ロールの一覧で [ロード テスト共同作成者] を選びます。

    Screenshot that shows the list of roles in the Add role assignment page in the Azure portal, highlighting the Load Test Contributor role.

  4. [メンバー] タブで [メンバーの選択] を選択し、前にコピーした表示名を使用してサービス プリンシパルを検索します。

  5. サービス プリンシパルを選択し、[選択] を選択します。

  6. [確認と 割り当て] タブで、[確認と割り当て] を選択して ロールの割り当てを追加します。

Azure Pipelines ワークフロー定義でサービス接続を使用して、Azure ロード テスト リソースにアクセスできるようになりました。

リポジトリにロード テスト ファイルを追加する

CI/CD ワークフローで Azure Load Testing を使用してロード テストを実行するには、ソース管理リポジトリにすべてのロード テスト入力ファイルを追加する必要があります。

既存のロード テストがない場合は、次のファイルをソース コード リポジトリに追加します。

  • ロード テスト構成 YAML ファイル。 ロード テスト構成 YAML ファイルを作成する方法について説明します。
  • テスト 計画ファイル。 JMeter ベースのテストの場合は、JMeter テスト スクリプト (JMX ファイル) を追加します。 URL ベースのテストの場合は、要求 JSON ファイル追加します。
  • JMeter ユーザー プロパティ ファイル
  • テスト 計画で使用する入力データ ファイル。 たとえば、CSV データ ファイルなどです。

既存のロード テストがある場合は、構成設定とすべての入力ファイルを Azure portal から直接ダウンロードできます。 次の手順を実行して、Azure portal の既存のロード テスト用の入力ファイルをダウンロードします。

  1. Azure portal の Azure Load Testing リソースに移動します。

  2. 左側のペインで、[テスト] を選択してロード テストのリストを表示し、対象のテストを選択します。

    Screenshot that shows the list of tests for an Azure Load Testing resource.

  3. 使っているテストの実行の横にある省略記号 ( ... ) を選び、 [Download input file] (入力ファイルのダウンロード) を選びます。

    ブラウザーは、ロード テスト入力ファイルを含む zip 形式のフォルダーをダウンロードします。

    Screenshot that shows how to download the results file for a load test run.

  4. 任意の zip ツールを使用して、入力ファイルを抽出します。

    このフォルダーには次のファイルが格納されています。

    • config.yaml: ロード テストの YAML 構成ファイル。 このファイルは、CI/CD ワークフロー定義で参照します。
    • .jmx: JMeter テスト スクリプト
    • ロード テストの実行に必要な CSV ファイルやユーザー プロパティ ファイルなどの追加の入力ファイル。
  5. 抽出されたすべての入力ファイルをソース管理リポジトリにコミットします。

    CI/CD パイプラインを構成するソース コード リポジトリを使用します。

CI/CD ワークフロー定義を更新する

Azure Load Testing では、ロード テストを実行するための GitHub Actions と Azure Pipelines の両方がサポートされています。

Azure DevOps 用の Azure Load Testing 拡張機能をインストールする

ロード テストを作成して実行するために、Azure Pipelines ワークフロー定義では Azure DevOps Marketplace の Azure Load Testing タスク拡張機能が使用されます。

  1. Azure DevOps Marketplace で Azure Load Testing タスク拡張機能を開き、[Get it free] (無料で入手) を選択します。

  2. Azure DevOps 組織を選択し、[インストール] を選択して拡張機能をインストールします。

    選択した Azure DevOps 組織の管理者特権がない場合は、[要求] を選択して、管理者に拡張機能のインストールを依頼します。

Azure Pipelines ワークフローを更新する

Azure Pipelines ワークフローを更新して、Azure ロード テスト リソースのロード テストを実行します。

  1. Azure DevOps 組織 (https://dev.azure.com/<your-organization>) にサインインし、プロジェクトを選択します。

  2. 左側のナビゲーションで [パイプライン] を選択し、パイプラインを選択して、[編集] を選択し、ワークフロー定義を編集します。

    または、[パイプラインの作成] を選択して、Azure Pipelines で新しいパイプラインを作成します。

  3. AzureLoadTest タスクを使用してロード テストを実行します。

    loadTestConfigFile プロパティで前にエクスポートしたロード テスト構成ファイルを指定します。

    <load-testing-resource><load-testing-resource-group> のテキスト プレースホルダーを、Azure ロード テスト リソースとリソース グループの名前に置き換えます。

        - task: AzureLoadTest@1
          inputs:
            azureSubscription: $(serviceConnection)
            loadTestConfigFile: 'config.yaml'
            loadTestResource: <load-testing-resource>
            resourceGroup: <load-testing-resource-group>
    

    必要に応じて、env プロパティまたは secrets プロパティを使用して、パラメーターまたはシークレットをロード テストに渡すことができます。

  4. publish タスクを使用して、テスト結果を成果物として Azure Pipelines ワークフローの実行で発行します。

        - publish: $(System.DefaultWorkingDirectory)/loadTest
          artifact: loadTestResults
    

ロード テストの結果の表示

CI/CD パイプラインからロード テストを実行すると、CI/CD 出力ログでサマリー結果を直接表示できます。 テスト結果をパイプライン成果物として発行した場合は、CSV ファイルをダウンロードしてさらにレポートすることもできます。

Screenshot that shows the workflow logging information.

リソースをクリーンアップする

作成したどのリソースも使用する予定がない場合は、追加の課金が発生しないように削除します。

  1. Azure Pipelines の変更を削除します。

    1. Azure DevOps 組織 (https://dev.azure.com/<your-organization>) にサインインし、プロジェクトを選択します。

      <your-organization> テキスト プレースホルダーをプロジェクト識別子に置き換えます。

    2. 新しいパイプラインを作成した場合:

      1. [パイプライン] を選択し、使用するパイプラインを選択します。

      2. 省略記号を選択し、[削除] を選択します。

        Screenshot that shows how to delete an Azure Pipelines definition.

      3. パイプライン名を入力し、[削除] を選択してパイプラインを削除します。

    3. 既存のワークフロー定義を変更した場合は、ロード テストを実行するための変更を元に戻し、ワークフローを保存します。

  2. サービス接続を削除します。

    1. [プロジェクト設定]>[サービス接続] の順に選択し、サービス接続を選択します。
    2. [編集]>[削除] の順に選択して、サービス接続を削除します。

次の手順

次の記事に進み、テストの失敗条件を定義し、テストの実行を比較することで、パフォーマンスの低下を特定する方法を参照してください。