YAML でのロード テストを構成する

YAML を使用して Azure Load Testing でロード テストを構成する方法について説明します。 テスト構成 YAML ファイルを使用して、継続的インテグレーションと継続的デリバリー (CI/CD) ワークフローからロード テストを作成して実行します。

ロード テストの定義

テスト構成では、次のキーが使用されます。

キー Type 既定値 説明
version string サービスで使用される YAML 構成ファイルのバージョン。 現在有用な値は v0.1 のみです。
testId string [必須] 。 実行するテストの ID。 testId は 2 ~ 50 文字にする必要があります。 新しいテストの場合は、文字 [a-z0-9_-] の ID を入力します。 既存のテストの場合は、Azure portalのテストの詳細ページからテスト ID を取得できます。 このフィールドは以前に呼び出 testName されましたが、これは非推奨になりました。 フィールドを使用して既存のテストを testName実行することもできます。
displayName string テストの表示名。 これは、Azure portalのテストの一覧に表示されます。 指定しない場合は、表示名として testId が使用されます。
testPlan string [必須] 。 実行する Apache JMeter テスト スクリプトへの相対パス。
engineInstances 整数 (integer) [必須] 。 指定されたテスト計画を実行するテスト エンジンの並列インスタンスの数。 このプロパティを更新して、サービスで生成できる負荷の量を増やすことができます。
configurationFiles array Apache JMeter スクリプトで参照する、関連する構成ファイルまたはその他のファイルの一覧。 たとえば、CSV データセット ファイル、画像、またはその他のデータ ファイルです。 これらのファイルは、テスト スクリプトと共に Azure Load Testing リソースにアップロードされます。 ファイルがローカル コンピューター上のサブフォルダー内にある場合は、テスト スクリプトの場所を基準としたファイル パスを使用します。

現在、Azure Load Testing では、JMX ファイルでのファイル パスの使用はサポートされていません。 テスト スクリプトで外部ファイルを参照する場合は、必ずファイル名のみを指定してください。
description string テストの簡単な説明。 description の最大長は 100 文字にする必要があります
subnetId string プライベートにホストされるエンドポイント (VNET インジェクション) をテストするためのサブネットのリソース ID。 このサブネットは、挿入されたテスト エンジン VM をホストします。 詳細については、 プライベートにホストされているエンドポイントをロード テストする方法に関する記事を参照してください。
failureCriteria object テストが失敗するタイミングを示す条件。 不合格条件の構造は次のとおりです。Request: Aggregate_function (client_metric) condition threshold サポートされている値の詳細については、「ロード テストの不合格の条件を定義する」を参照してください。
autoStop object エラーの割合が特定のしきい値を超えたときに、自動停止機能を有効または無効にします。 詳細については、「 ロード テストの自動停止を構成する」を参照してください。

値:
- disable: ロード テストを自動的に停止しないでください。
- 空の値: 自動停止が有効になっています。 errorPercentagetimeWindow の値を指定します。
autoStop.errorPercentage 整数 (integer) 90 autoStop.timeWindow 中のエラーの割合のしきい値。 特定の時間枠でエラーの割合がこの割合を超えると、ロード テストの実行は自動的に停止します。
autoStop.timeWindow integer 60 autoStop.errorPercentage を計算するための時間枠 (秒単位)。
properties object ロード テストを構成するためのプロパティのリスト。
properties.userPropertyFile string Apache JMeter のユーザー プロパティ ファイルとして使用するファイル。 このファイルは、JMeter テスト スクリプトやその他の構成ファイルと共に Azure Load Testing リソースにアップロードされます。 ファイルがローカル コンピューター上のサブフォルダー内にある場合は、テスト スクリプトの場所を基準とした相対パスを使用します。
splitAllCSVs boolean False 入力 CSV ファイルをすべてのテスト エンジン インスタンスに均等に分割します。 詳細については、 ロード テストのCSVファイルを読むを参照してください。
secrets object Apache JMeter スクリプトによって参照されるシークレットの一覧。
secrets.name string シークレットの名前。 この名前は、Apache JMeter スクリプトで使用するシークレット名と一致する必要があります。
secrets.value string Azure Key Vault シークレットの URI (シークレット識別子)
env object Apache JMeter スクリプトによって参照される環境変数の一覧。
env.name string 環境変数の名前。 この名前は、Apache JMeter スクリプトで使用するシークレット名と一致する必要があります。
env.value string 環境変数の値。
certificates object JMeter スクリプトのアプリケーション エンドポイントで認証するためのクライアント証明書の一覧。
certificates.name string 証明書の名前。
certificates.value string Azure Key Vault の証明書の URI (シークレット識別子)。
keyVaultReferenceIdentity string Azure キー コンテナーからシークレットにアクセスするための、ユーザー割り当てマネージド ID のリソース ID。 システム マネージド ID を使う場合、この情報は必要ありません。 このユーザー割り当て ID には、Azure キー コンテナーへのアクセス権を必ず付与してください。

ロード テストの構成例を含む YAML スニペットを次に示します。

version: v0.1
testId: SampleTest
displayName: Sample Test
testPlan: SampleTest.jmx
description: Load test website home page
engineInstances: 1
subnetId: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.Network/virtualNetworks/load-testing-vnet/subnets/load-testing
properties:
  userPropertyFile: 'user.properties'
configurationFiles:
  - 'SampleData.csv'
failureCriteria:
  - avg(response_time_ms) > 300
  - percentage(error) > 50
  - GetCustomerDetails: avg(latency) >200
autoStop:
  errorPercentage: 80
  timeWindow: 60
splitAllCSVs: True
env:
  - name: my-variable
    value: my-value
secrets:
  - name: my-secret
    value: https://akv-contoso.vault.azure.net/secrets/MySecret/abc1234567890def12345
certificates:
  - name: my-certificate
    value: https://akv-contoso.vault.azure.net/certificates/MyCertificate/abc1234567890def12345
keyVaultReferenceIdentity: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sample-identity

次のステップ