Continuous Testing と Datadog CI Azure DevOps 拡張機能

Visual Studio Marketplace Version Build Status License

概要

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

  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)'
    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.

入力

名前要件説明
apiKeyrequiredapiAppKeys 認証タイプを使用する際の 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デフォルト: []

参考資料

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