Continuous Testing と Datadog CI Azure DevOps 拡張機能

Visual Studio Marketplace Version Build Status License

概要

Datadog Continuous Testing Azure DevOps 拡張機能を使用すると、Azure パイプラインの構成内で Synthetic テストを実行し、Azure DevOps を使用しているすべてのチームが、ソフトウェアライフサイクルの各段階で Synthetic テストの恩恵を受けられるようにすることができます。タスクとして SyntheticsRunTests を実行することができます。

Authentication

サービス接続

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 サービス接続を作成します。一度作成すれば、あとはタスクにサービス接続の名前を入れるだけです。

  1. Azure Organization に Visual Studio Marketplace から Datadog Continuous Testing 拡張機能をインストールします。
  2. Datadog CI サービス接続に、または Azure パイプラインプロジェクトのシークレットとして Datadog API キーとアプリケーションキーを追加します。
  3. 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)'
    subdomain: 'myorg'
    datadogSite: '$(DatadogSite)'

複雑の使用

: 最近、タスクのメジャーバージョンを 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)      

configPath によるグローバル構成オーバーライドを使用したタスク例

このタスクは、グローバルな datadog-ci.config.json ファイルへのパスをオーバーライドします。

- task: SyntheticsRunTests@1
  displayName: Run Datadog Synthetic tests
  inputs:
    authenticationType: 'connectedService'
    connectedService: 'my-datadog-ci-connected-service'
    configPath: './synthetics-config.json'

コンフィギュレーションファイルの例としては、この global.config.json ファイル をご覧ください。

入力

名前要件説明
authenticationType必須Datadog に使用させたい認証のタイプで、connectedService または apiAppKeys のどちらか。
connectedServiceオプションDatadog CI サービス接続で、connectedService 認証タイプを使用する際に使用する名前。
apiKeyオプションapiAppKeys 認証タイプを使用する際の Datadog API キー。このキーは Datadog 組織によって作成され、シークレットとして保存される必要があります。
appKeyオプションapiAppKeys 認証タイプを使用する際の Datadog アプリケーションキー。このキーは Datadog 組織によって作成され、シークレットとして保存される必要があります。
subdomainオプションapiAppKeys 認証タイプを使用する際に、Datadog アプリケーションにアクセスするために設定するカスタムサブドメインの名前。Datadog にアクセスするための URL が myorg.datadoghq.com である場合、この値は myorg に設定する必要があります。デフォルト: app
datadogSiteオプションapiAppKeys 認証タイプを使用する場合の Datadog サイトデフォルト: datadoghq.com
publicIdsオプショントリガーしたい Synthetic テストの ID を、改行またはカンマで区切ったリスト。値を指定しない場合、タスクは synthetics.json という名前のファイルを探します。
testSearchQueryオプション検索クエリに対応するテストをトリガーします。これは、テストの構成にタグを付けている場合に便利です。詳しくは、タグの命名規則とベストプラクティスを参照してください。
filesオプションSynthetic テストの構成ファイルを検出するための Glob パターン。デフォルト: {,!(node_modules)/**/}*.synthetics.json
configPathオプションテストを起動するときに使用されるグローバル JSON 構成。詳細は構成例を参照してください。デフォルト: datadog-ci.json
variablesオプションSynthetic テストに使用するグローバル変数のリストで、改行またはカンマで区切って指定します。例: START_URL=https://example.org,MY_VARIABLE=My titleデフォルト: []
jUnitReportオプションJUnit レポートを生成したい場合のファイル名。
pollingTimeoutオプションタスクがテスト結果のポーリングを停止するまでの時間 (ミリ秒単位)。CI レベルでは、この時間以降に完了したテスト結果は失敗とみなされます。デフォルト: 30 分。
failOnCriticalErrorsオプションテストがトリガーされなかったり、Datadog から結果を取得できなかったりした場合に、CI ジョブを失敗させます。デフォルト: false
failOnMissingTestsオプションパブリック ID (publicIds を使用するか、テストファイルにリストされている) を持つ指定されたテストが少なくとも 1 つ実行中に見つからない場合 (例えば、プログラム上または Datadog サイトで削除された場合)、CI ジョブを失敗させます。デフォルト: false
failOnTimeoutオプション少なくとも 1 つのテストがデフォルトのテストタイムアウトを超えた場合、CI ジョブを失敗させます。デフォルト: true

その他の参考資料

お役に立つドキュメント、リンクや記事: