Continuous Testing と Datadog CI Azure DevOps 拡張機能

概要
SyntheticsRunTests タスクを使用すると、Azure パイプラインの構成内で Synthetic テストを実行し、Azure DevOps を使用しているすべてのチームが、ソフトウェア ライフサイクルの各段階で Synthetic テストの恩恵を受けられるようにすることができます。
利用可能な構成の詳細については、 datadog-ci synthetics run-tests のドキュメントを参照してください。
認証
サービス接続
Datadog サイトに接続するには、Datadog は SyntheticsRunTests タスクの構成時にカスタム サービス接続を設定することを推奨しています。
以下の入力が必要です。
- Datadog site: ご利用の Datadog サイト。使用可能な値はこちらの表に記載されています。
- Custom subdomain (デフォルト:
app): Datadog 組織にアクセスするためのカスタム サブドメイン。URL が myorg.datadoghq.com の場合、カスタム サブドメインは myorg になります。 - API key: Datadog API キー。このキーは Datadog 組織内で作成されます。
- Application key: Datadog アプリケーション キー。このキーは Datadog 組織内で作成されます。
API キーとアプリケーションキー
- API key: Datadog API キーです。このキーは Datadog 組織内で作成され、シークレットとして保存する必要があります。
- Application key: Datadog アプリケーション キーです。このキーは Datadog 組織内で作成され、シークレットとして保存する必要があります。
- Datadog サイト: ご利用の Datadog サイト。使用可能な値はこちらの表に記載されています。
- Custom subdomain (オプション): Datadog 組織にアクセスするためのカスタム サブドメイン。URL が
myorg.datadoghq.com の場合、カスタム サブドメインは myorg になります。
セットアップ
Datadog アカウントに接続するために、Azure パイプラインプロジェクトで Datadog CI サービス接続を作成します。一度作成すれば、あとはタスクにサービス接続の名前を入れるだけです。
- Azure Organization に Visual Studio Marketplace から Datadog Continuous Testing 拡張機能をインストールします。
- Datadog CI サービス接続に、または Azure パイプラインプロジェクトのシークレットとして Datadog API キーとアプリケーションキーを追加します。
- Azure DevOps パイプラインで、
SyntheticsRunTests タスクを使用します。
タスクはシンプルまたは複雑にすることができます。
シンプルの使用
公開 ID を使用したタスク例
- task: SyntheticsRunTests@1
displayName: Run Datadog Synthetic tests
inputs:
authenticationType: 'connectedService'
connectedService: 'my-datadog-ci-connected-service'
publicIds: |
abc-d3f-ghi
jkl-mn0-pqr
既存の synthetics.json ファイルを使用したタスク例
- task: SyntheticsRunTests@1
displayName: Run Datadog Synthetic tests
inputs:
authenticationType: 'connectedService'
connectedService: 'my-datadog-ci-connected-service'
files: 'e2e-tests/*.synthetics.json'
テストファイルの例としては、この test.synthetics.json ファイルを参照してください。
認証にパイプラインシークレットを使用したタスク例
- task: SyntheticsRunTests@1
inputs:
authenticationType: 'apiAppKeys'
apiKey: '$(DatadogApiKey)'
appKey: '$(DatadogAppKey)'
datadogSite: '$(DatadogSite)'
subdomain: 'myorg'
複雑の使用
testSearchQuery を使用したタスク例
- task: SyntheticsRunTests@1
displayName: Run Datadog Synthetic tests
inputs:
authenticationType: 'connectedService'
connectedService: 'my-datadog-ci-connected-service'
testSearchQuery: 'tag:e2e-tests'
testSearchQuery と変数のオーバーライドを使用したタスク例
- task: SyntheticsRunTests@1
displayName: Run Datadog Synthetic tests
inputs:
authenticationType: 'connectedService'
connectedService: 'my-datadog-ci-connected-service'
testSearchQuery: 'tag:e2e-tests'
variables: |
START_URL=https://staging.website.com
PASSWORD=$(StagingPassword)
configPath でグローバル構成ファイルを使用したタスク例
デフォルトでは、グローバル構成ファイルへのパスは datadog-ci.json です。このパスは config_path の入力値でオーバーライドすることができます。
- task: SyntheticsRunTests@1
displayName: Run Datadog Synthetic tests
inputs:
authenticationType: 'connectedService'
configPath: './global.config.json'
connectedService: 'my-datadog-ci-connected-service'
入力
利用可能な構成の詳細については、 datadog-ci synthetics run-tests のドキュメントを参照してください。
| 名前 | 説明 |
|---|
apiKey | Datadog API キーです。このキーは Datadog 組織内で作成され、シークレットとして保存する必要があります。
authenticationType == apiAppKeys の場合は必須 |
appKey | Datadog アプリケーション キーです。このキーは Datadog 組織内で作成され、シークレットとして保存する必要があります。
authenticationType == apiAppKeys の場合は必須 |
authenticationType | (必須) 資格情報の保存・取得方法。
apiAppKeys または connectedService のいずれかになります |
batchTimeout | CI バッチのタイムアウト時間をミリ秒単位で指定します。バッチがタイムアウトすると CI ジョブは失敗し、新しいテスト実行はトリガーされませんが、進行中のテスト実行は正常に完了します。 デフォルト: 1800000 (30分) |
connectedService | Datadog CI サービス接続の名前。
authenticationType == connectedService の場合は必須 |
configPath | datadog-ci の構成に使用されているグローバル構成ファイルへのパス。 デフォルト: datadog-ci.json |
datadogSite | ご利用の Datadog サイト。使用可能な値はこちらの表に記載されています。 デフォルト: datadoghq.com
に設定します (右側で正しい SITE が選択されていることを確認してください)。 |
failOnCriticalErrors | レート制限、認証失敗、Datadog インフラストラクチャーの問題など、通常は一過性の重大なエラーが発生した場合に CI ジョブを失敗させます。 デフォルト: false |
failOnMissingTests | 実行するテストのリストが空であるか、リストに明示されたテストが欠けている場合に CI ジョブを失敗させます。 デフォルト: false |
failOnTimeout | CI バッチがタイムアウトにより失敗した場合に CI ジョブを失敗させます。 デフォルト: true |
files | Synthetic テストの構成ファイルを検出するための Glob パターン (改行区切り)。 デフォルト: {,!(node_modules)/**/}*.synthetics.json |
jUnitReport | JUnit レポートを生成したい場合のファイル名。 デフォルト: なし |
locations | テストを実行する場所のリストをオーバーライドします (改行またはカンマ区切り)。使用可能な値は、こちらの API 応答に記載されています。 デフォルト: なし |
publicIds | 実行する Synthetic テストの公開 ID (改行またはカンマ区切り)。値が指定されない場合、テストは Synthetic テスト構成ファイルから検出されます。 デフォルト: なし |
selectiveRerun | 失敗したテストだけを再実行するかどうかを指定します。あるコミットでテストが既に合格している場合、それ以降の CI バッチではそのテストを再実行しません。デフォルトでは、組織のデフォルト設定が使用されます。構成でデフォルトが有効になっている場合でも、false に設定するとフル実行を強制します。 デフォルト: なし |
subdomain | authenticationType == apiAppKeys の場合に、Datadog 組織にアクセスするためのカスタム サブドメイン。URL が myorg.datadoghq.com の場合、カスタム サブドメインは myorg になります。 デフォルト: app |
testSearchQuery | 検索クエリを使用して、実行する Synthetic テストを選択します。Synthetic Tests list ページの検索バーを使ってクエリを作成し、コピー&ペーストしてください。 デフォルト: なし |
variables | Synthetic テストで、既存のローカル変数とグローバル変数を上書きするか、キーと値のペアとして新しいローカル変数とグローバル変数を追加します (改行またはカンマ区切り)。例: START_URL=https://example.org,MY_VARIABLE=My title。 デフォルト: なし |
出力
| 名前 | 説明 |
|---|
batchUrl | CI バッチの URL。 |
criticalErrorsCount | CI バッチ実行中に発生した重大なエラーの数。 |
failedCount | CI バッチ実行中に失敗した結果の数。 |
failedNonBlockingCount | CI バッチ実行中に CI をブロックすることなく失敗した結果の数。 |
passedCount | CI バッチ実行中に合格した結果の数。 |
previouslyPassedCount | 同じコミットに対する以前の CI バッチで既に合格した結果の数。 |
testsNotFoundCount | CI バッチの開始時に見つけられなかったテストの数。 |
testsSkippedCount | CI バッチの開始時にスキップされたテストの数。 |
timedOutCount | CI バッチのタイムアウトにより失敗した結果の数。 |
rawResults | synthetics.Result[] の配列を JSON エンコードした文字列。 |
参考資料
お役に立つドキュメント、リンクや記事: