概要

CircleCI Build Status CircleCI Orb Version Apache 2.0 License CircleCI Community

Datadog CircleCI orb を使用して、CircleCI パイプラインで Synthetic テストを実行します。

CircleCI コマンド orb は datadog-ci をインストールし、datadog-ci synthetics run-tests コマンドDatadog Synthetic テストを実行するものです。

セットアップ

始めるには

  1. Datadog の API キーとアプリケーションキーを環境変数として CircleCI プロジェクトに追加します。詳しくは、API とアプリケーションキーを参照してください。
  2. orb を実行しているイメージが、cURL がインストールされた Linux x64 のベースイメージであることを確認します。
  3. run-tests.yml ファイルを作成し、命名規則に従ってワークフローの入力を指定することで、ワークフローをカスタマイズします。

ワークフローはシンプルまたは複雑にすることができます。

シンプルの使用

公開 ID を使用した orb 使用の例

version: 2.1

orbs:
  synthetics-ci: datadog/synthetics-ci-orb@2.6.0

jobs:
  e2e-tests:
    docker:
      - image: cimg/base:stable
    steps:
      - synthetics-ci/run-tests:
          public_ids: 'abc-d3f-ghi, jkl-mn0-pqr'

workflows:
  run-tests:
    jobs:
      - e2e-tests

グローバルコンフィグレーションのオーバーライドを使用した orb 使用の例

この orb では、テストファイルのパターンへのパスがオーバーライドされます。

version: 2.1

orbs:
  synthetics-ci: datadog/synthetics-ci-orb@2.6.0

jobs:
  e2e-tests:
    docker:
      - image: cimg/base:stable
    steps:
      - synthetics-ci/run-tests:
          files: e2e-tests/*.synthetics.json

workflows:
  run-tests:
    jobs:
      - e2e-tests

Synthetic テストをトリガーするパイプラインの別の例については、simple-example.yml ファイルを参照してください。

複雑の使用

test_search_query を使用した orb 使用の例

version: 2.1

orbs:
  synthetics-ci: datadog/synthetics-ci-orb@2.6.0

jobs:
  e2e-tests:
    docker:
      - image: cimg/base:stable
    steps:
      - synthetics-ci/run-tests:
          test_search_query: 'tag:e2e-tests'

workflows:
  run-tests:
    jobs:
      - e2e-tests

Continuous Testing Tunnel を使用した orb 使用の例

version: 2.1

orbs:
  synthetics-ci: datadog/synthetics-ci-orb@2.6.0

jobs:
  e2e-tests:
    docker:
      - image: your-image
    steps:
      - checkout
      - run:
          name: Running server in background
          command: npm start
          background: true
      - synthetics-ci/run-tests:
          config_path: tests/tunnel-config.json
          files: tests/*.synthetics.json
          test_search_query: 'tag:e2e-tests'
          tunnel: true

workflows:
  test-server:
    jobs:
      - build-image
      - integration-tests:
          requires:
            - build-image

CircleCI パイプラインの pollingTimeout をカスタマイズするなどの追加オプションについては、CI/CD インテグレーション構成を参照してください。ローカルサーバーを起動し、Continuous Testing Tunnel を使用して Synthetic テストをトリガーする別のサンプルパイプラインについては、advanced-example.yml ファイルを参照してください。

入力

ワークフローをカスタマイズするために、run-tests.yml ファイルに以下のパラメーターを設定することができます。

名前タイプデフォルト説明
api_key環境変数名DATADOG_API_KEYAPI キーが格納されている環境変数名。
app_key環境変数名DATADOG_APP_KEYAPP キーが格納されている環境変数名。
config_path文字列datadog-ci.jsonテストを起動する際に使用するグローバルな JSON 構成。
fail_on_critical_errorsbooleanfalseテストがトリガーされなかったか、結果を取得できなかった場合に失敗します。
fail_on_missing_testsbooleanfalseパブリック ID (public_ids を使用するか、テストファイルにリストされている) を持つ指定されたテストが少なくとも 1 つ実行中に見つからない場合 (例えば、プログラム上または Datadog サイトで削除された場合)、失敗します。
fail_on_timeoutbooleantrueテストタイムアウトを超えた場合、CI を強制的に失敗 (または合格) させます。
files文字列{,!(node_modules)/**/}*.synthetics.jsonSynthetic テストのコンフィギュレーションファイルを検出するためのグロブパターン。
junit_report文字列なしJUnit レポートを生成したい場合のファイル名。
locations文字列テストファイルの値テストが実行される場所をオーバーライドするための、セミコロンで区切られた場所の文字列。
polling_timeout数値30 分アクションがテスト結果のポーリングを停止するまでの時間 (ミリ秒単位)。CI レベルでは、この時間以降に完了したテスト結果は失敗とみなされます。
public_ids文字列テストファイルの値トリガーしたい Synthetic テストの公開 ID をカンマで区切った文字列。
site文字列datadoghq.comデータ送信先となる Datadog のサイト。環境変数 DD_SITE が設定されている場合は、そちらが優先されます。
subdomain文字列appDatadog アプリケーションにアクセスするために設定されたカスタムサブドメインの名前。
test_search_query文字列なし検索クエリに対応するテストをトリガーします。
tunnelブール値falseContinuous Testing Tunnel を使用してテストをトリガーします。
variables文字列なしテストに変数を注入するための Key-Value ペア。KEY=VALUE という形式である必要があります。

CircleCI パイプラインの追加オプションについては、Continuous Testing と CI/CD インテグレーション構成を参照してください。

参考資料

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