Continuous Testing と CI/CD

このページでは、継続的インテグレーション (CI) と継続的デリバリー (CD) のパイプラインの Continuous Testing テストの実行について説明します。CI のメトリクスやデータを Datadog のダッシュボードに取り込みたい場合は、CI Visibility のセクションを参照してください。

概要

あらかじめ定義された間隔でテストを実行するだけでなく、@datadog/datadog-ci パッケージや API を使用して Datadog Synthetic テストを再利用し、オンデマンドで実行することができます。継続的インテグレーション (CI) パイプラインで Datadog Continuous Testing テストを実行することで、ブランチのデプロイとそれによる本番環境でのアプリケーションの破壊を防ぐことができます。

Continuous Testing と CI/CD を使用して、継続的デリバリー (CD) プロセスの一環としてテストを実行し、デプロイが終了した直後や新しいリリースが行われた直後に本番環境でアプリケーションとサービスの状態を評価することができます。ユーザーに影響を与える可能性のある回帰を検出し、重要なテストが失敗したときには自動的にロールバックを開始することができます。

この機能により、バグや回帰をプロセスの早い段階で発見することで、本番環境での問題解決にかかる時間を短縮し、エンジニアリングチームは緊急性のない作業に集中することができます。

まずは、インテグレーションを参照し、API またはオープンソース CLI パッケージを使用します。

インテグレーション

Continuous Testing と CI/CD を使えば、Continuous Testing テストをお好みの CI プラットフォームプロバイダーで実行することができます。以下のインテグレーションについてはドキュメントを、または Datadog CI NPM パッケージの詳細についてご覧ください。


CLI を使用する

@datadog/datadog-ci パッケージを使うと、CI/CD パイプラインの中で直接 Continuous Testing テストを実行することができます。@datadog/datadog-ci NPM パッケージを使用するには、構成を参照してください。

タグを使った検索でテストをトリガーすることができます。例えば、"ci": "datadog-ci synthetics run-tests --config fileconfig.json -s 'tag:staging'" を使用します。このコマンドは引数として動作します。コンフィギュレーションファイルでは使用しないでください。

API を使用する

Synthetics API のエンドポイントでは、ステージングとデプロイのライフサイクルのどの段階でもテストを開始できます。例えば、自動ロールバックされたカナリアデプロイメントの後などです。

API エンドポイントを使用して、新しいデプロイメントが回帰をもたらしていないことを迅速に検証します。CI/CD パイプラインからテストを起動するバッチの詳細の取得エンドポイントを参照して、cURL またはサポートされているクライアントを通して CI 内でそれらを使用します。

CI/CD パイプラインからテストをトリガー

エンドポイントをトリガーするテストは、1 回のリクエストで最大 100 件のテストに対応します。

  • Endpoint: https://api./api/v1/synthetics/tests/trigger/ci
  • Method: POST
  • Argument: トリガーする全テストのリストと各テストのコンフィギュレーションオーバーライドを含む JSON オブジェクト。

リクエストデータの構造

{
    "tests": [TEST_TO_TRIGGER, TEST_TO_TRIGGER, ...]
}

TEST_TO_TRIGGER オブジェクトは、トリガーしたいテストに必要な public_id と、オプションのコンフィギュレーションオーバーライドで構成されます。各フィールドの説明については、テストの構成を参照してください。

テストの公開識別子は、テストの詳細ページの URL にあるテストの識別子 (たとえば https://app.datadoghq.com/synthetics/details/abc-def-ghi の識別子は abc-def-ghi) か、テストの詳細ページの完全な URL (たとえば https://app.datadoghq.com/synthetics/details/abc-def-ghi) のどちらかです。

詳しくは、Synthetics API エンドポイントのドキュメントをご覧ください。

バッチの詳細を取得

バッチの詳細の取得エンドポイントは、CI/CD パイプラインでトリガーされたテスト群 (バッチと呼ばれます) の結果を取得します。関連する CI の実行のための batch_id を提供する必要があります。

  • エンドポイント: https://api./api/v1/synthetics/ci/batch/{batch_id}
  • Method: GET
  • パラメーター: 検査したいテスト結果のバッチの batch_id

詳しくは、Synthetics API エンドポイントのドキュメントをご覧ください。

その他の参考資料