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: ロード テストを自動的に停止しないでください。 - 空の値: 自動停止が有効になっています。 errorPercentage と timeWindow の値を指定します。 |
|
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
次のステップ
- CI/CD ワークフローで自動回帰テストをビルドする方法について説明します。
- シークレットと環境変数を使用してロード テストをパラメーター化する方法について説明します。
- セキュリティで保護されたエンドポイントをロード テストする方法について説明します。