概要

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@3.18.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@3.18.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@3.18.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@3.18.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 キーが格納されている環境変数名。
backgroundブール値falseWhether or not this step should run in the background. See official CircleCI documentation.
batch_timeout数値30 分The duration (in milliseconds) after which the batch fails as timed out. The default is 30 minutes.
config_path文字列datadog-ci.jsonテストを起動する際に使用するグローバルな JSON 構成。
fail_on_critical_errorsブール値falseテストがトリガーされなかったか、結果を取得できなかった場合に失敗します。
fail_on_missing_testsブール値falseパブリック ID (public_ids を使用するか、テストファイルにリストされている) を持つ指定されたテストが少なくとも 1 つ実行中に見つからない場合 (例えば、プログラム上または Datadog サイトで削除された場合)、失敗します。
fail_on_timeoutブール値trueテストタイムアウトを超えた場合、CI を強制的に失敗 (または合格) させます。
files文字列{,!(node_modules)/**/}*.synthetics.jsonA list of glob patterns to detect Synthetic tests config files, separated by new lines.
junit_report文字列なしJUnit レポートを生成したい場合のファイル名。
locations文字列テストファイルの値テストが実行される場所をオーバーライドするための、セミコロンで区切られた場所の文字列。
no_output_timeout文字列30 分Elapsed time the command can run without output. The string is a decimal with unit suffix, such as “20m”, “1.25h”, “5s”. See official CircleCI documentation.
polling_timeout数値30 分DEPRECATED in favor of batch_timeout. The duration (in milliseconds) after which the action stops polling for test results. At the CI level, test results completed after this duration are considered failed.
public_ids文字列テストファイルの値A list of test IDs for Synthetic tests you want to trigger, separated by new lines or commas.
site文字列datadoghq.comデータ送信先となる Datadog のサイト。環境変数 DD_SITE が設定されている場合は、そちらが優先されます。
subdomain文字列appDatadog アプリケーションにアクセスするために設定されたカスタムサブドメインの名前。
test_search_query文字列なし検索クエリに対応するテストをトリガーします。
tunnelブール値falseContinuous Testing Tunnel を使用してテストをトリガーします。
variables文字列なしA list of global variables to use for Synthetic tests, separated by new lines or commas. For example: START_URL=https://example.org,MY_VARIABLE="My title".

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

参考資料

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