Continuous Testing と Datadog CI Azure DevOps 拡張機能

概要
Datadog Continuous Testing Azure DevOps 拡張機能を使用すると、Azure パイプラインの構成内で Synthetic テストを実行し、Azure DevOps を使用しているすべてのチームが、ソフトウェアライフサイクルの各段階で Synthetic テストの恩恵を受けられるようにすることができます。タスクとして SyntheticsRunTests を実行することができます。
認証
サービス接続
Datadog サイトに接続するために、Datadog は Synthetic Run Test タスクの構成時にカスタムサービス接続を設定することを推奨しています。
以下の入力が必要です。
- Datadog site: どの Datadog サイトに接続し、データを送信するか。
- Custom subdomain (デフォルト:
app): Datadog アプリケーションにアクセスするために設定されたカスタムサブドメインの名前。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 site: 接続し、データを送信する Datadog サイト。
- Custom subdomain (オプション): Datadog アプリケーションにアクセスするために設定されたカスタムサブドメインの名前。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 タスクを使用します。
タスクはシンプルまたは複雑にすることができます。
シンプルの使用
注: 最近、タスクのメジャーバージョンを SyntheticsRunTests@0 から SyntheticsRunTests@1 に変更しました。
これは重大な変更ではありませんが、タスクバージョンと拡張機能バージョンの間の調整です。
公開 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'
複雑の使用
注: 最近、タスクのメジャーバージョンを SyntheticsRunTests@0 から SyntheticsRunTests@1 に変更しました。
これは重大な変更ではありませんが、タスクバージョンと拡張機能バージョンの間の調整です。
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)
Example task using a global configuration file with configPath
By default, the path to the global configuration file is datadog-ci.json. You can override this path with the config_path input.
- task: SyntheticsRunTests@1
displayName: Run Datadog Synthetic tests
inputs:
authenticationType: 'connectedService'
configPath: './global.config.json'
connectedService: 'my-datadog-ci-connected-service'
For an example of a global configuration file, see this global.config.json file.
入力
| 名前 | 要件 | 説明 |
|---|
apiKey | required | apiAppKeys 認証タイプを使用する際の Datadog API キー。このキーは Datadog 組織によって作成され、シークレットとして保存される必要があります。 |
appKey | 必須 | apiAppKeys 認証タイプを使用する際の Datadog アプリケーションキー。このキーは Datadog 組織によって作成され、シークレットとして保存される必要があります。 |
authenticationType | 必須 | Datadog に使用させたい認証のタイプで、connectedService または apiAppKeys のどちらか。 |
connectedService | 必須 | Datadog CI サービス接続で、connectedService 認証タイプを使用する際に使用する名前。 |
configPath | オプション | The global JSON configuration used when launching tests. For more information, see the example configuration. Default: datadog-ci.json. |
datadogSite | オプション | apiAppKeys 認証タイプを使用する場合の Datadog サイト。デフォルト: datadoghq.com。 |
failOnCriticalErrors | オプション | テストがトリガーされなかったり、Datadog から結果を取得できなかったりした場合に、CI ジョブを失敗させます。デフォルト: false |
failOnMissingTests | オプション | パブリック ID (publicIds を使用するか、テストファイルにリストされている) を持つ指定されたテストが少なくとも 1 つ実行中に見つからない場合 (例えば、プログラム上または Datadog サイトで削除された場合)、CI ジョブを失敗させます。デフォルト: false |
failOnTimeout | オプション | 少なくとも 1 つのテストがデフォルトのテストタイムアウトを超えた場合、CI ジョブを失敗させます。デフォルト: true |
files | オプション | Synthetic テストの構成ファイルを検出するための Glob パターン。デフォルト: {,!(node_modules)/**/}*.synthetics.json。 |
jUnitReport | オプション | JUnit レポートを生成したい場合のファイル名。 |
pollingTimeout | オプション | DEPRECATED: The duration (in milliseconds) after which the task stops polling for test results. At the CI level, test results completed after this duration are considered failed. Default: 30 minutes. |
publicIds | オプション | トリガーしたい Synthetic テストの ID を、改行またはカンマで区切ったリスト。値を指定しない場合、タスクは synthetics.json という名前のファイルを探します。 |
subdomain | オプション | apiAppKeys 認証タイプを使用する際に、Datadog アプリケーションにアクセスするために設定するカスタムサブドメインの名前。Datadog にアクセスするための URL が myorg.datadoghq.com である場合、この値は myorg に設定する必要があります。デフォルト: app。 |
testSearchQuery | オプション | 検索クエリに対応するテストをトリガーします。これは、テストの構成にタグを付けている場合に便利です。詳しくは、タグの命名規則とベストプラクティスを参照してください。 |
variables | オプション | Synthetic テストに使用するグローバル変数のリストで、改行またはカンマで区切って指定します。例: START_URL=https://example.org,MY_VARIABLE=My title。デフォルト: []。 |
参考資料
お役に立つドキュメント、リンクや記事: