API テストの概要

API テストの概要

単一の API テストを作成する

API テストは、いつでもどこからでも最も重要なサービスが利用可能であることをプロアクティブに監視します。API テストには、システムのさまざまなネットワークレイヤーでリクエストを起動できる 5 つの異なるサブタイプがあります。

以下の例は、API テストのサブタイプである HTTP テストの作成を示しています。HTTP テストを作成すると、API エンドポイントを監視 して、失敗や遅延が起きた場合にアラートを受け取ることができます。このチェックによって、アプリケーションがリクエストに応答していることや、予想される応答時間HTTP ステータスコードヘッダー本文の内容などの定義された条件をすべて満たしていることを検証できます。

リクエストを定義する

  1. Datadog アプリケーションで、左側のメニューにある UX Monitoring にカーソルを合わせ、Synthetic Tests を選択します。

  2. 右上の New Test ボタンをクリックします。

  3. New API test を選択します。

  4. HTTP リクエストタイプを選択します。

  5. リクエストを定義します。

    • 監視するエンドポイントの URL を追加します。何から始めればよいかわからない場合は、テストウェブアプリケーションである https://www.shopist.io/ を使用できます。テストするエンドポイントを定義すると、テストの名前が Test on www.shopist.io に自動的に入力されます。必要に応じて、テスト名を別の名前に変更できます。
    • カスタムリクエストヘッダー、認証資格情報、本文コンテンツ、cookie を使用するには、Advanced Options を選択します。
    • テストでは、env:prodapp:shopist などのタグを設定できます。タグを使用すると、テストスイートを整理し、ホームページで興味のあるテストをすばやく見つけることができます。
    • API 呼び出しの任意の資格情報に安全なグローバル変数を使用できます。ローカル変数を作成して、動的に定義されたタイムスタンプをリクエストペイロードに挿入することもできます。これらの変数を作成した後、{{ と入力し、変数を選択して、テストオプションに変数を挿入します。
  6. Test URL をクリックして、サンプルのテスト実行をトリガーします。

アサーションを定義する

Test URL をクリックすると、エンドポイントの応答に関する基本的なアサーションが自動的に入力されます。アサーションは、成功したテスト実行が何であるかを定義します。

この例では、サンプルのテスト実行をトリガーした後、3 つのデフォルトのアサーションが設定されます。

アサーションは完全にカスタマイズ可能です。カスタムアサーションを追加するには、応答プレビューの要素をクリックするか、New Assertion をクリックします。

: アサーションでグローバル変数とローカル変数を活用することもできます。

ロケーションを選択する

テストを実行する 1 つ以上の Managed Locations または Private Locations を選択します。

管理ロケーションでは、公開されている Web サイトとエンドポイントをテストすることができます。内部アプリケーションをテストしたり、個別の地理的領域でユーザーの行動をシミュレートしたりするには、代わりに Private Locations を 1 つ選択します。

プライベートロケーションの設定方法の詳細については、プライベートロケーション入門を参照してください。

テストの頻度を指定する

テストを実行する頻度を選択します。

スケジュールに従って Synthetic テストを実行することに加えて、CI/CD パイプラインから手動または直接トリガーすることができます。詳細については、Synthetic CI/CD テストを参照してください。

アラート条件を定義する

アラート条件を定義して、散発的なネットワークブリップなどのテストがトリガーされないようにすることができます。これにより、エンドポイントに実際の問題が発生した場合にのみアラートが送信されます。

ロケーションが失敗したと見なす前に発生する必要がある連続した失敗の数を指定できます。

Retry test 2 times after 300 ms in case of failure

エンドポイントが特定の時間とロケーションの数だけダウンしたときにのみ通知をトリガーするようにテストを構成することもできます。次の例では、2 つの異なるロケーションでテストが 3 分間失敗した場合に、アラートルールが通知を送信するように設定されています。

An alert is triggered if your test fails for 3 minutes from any 2 of 13 locations

チームへの通知

Monitor Name フィールドにアラート名を追加し、アラートのメッセージを書き込みます。Slack、PagerDuty、Microsoft Teams、Webhook などのインテグレーションを使用して、アラートを特定のサービスやチームにルーティングできます。

アラートが解決されていない場合にアラート通知が再通知する時間を設定し、P5 (Info) から P1 (Critical) の範囲でアラートの優先度を定義できます。

テストを実行する準備ができたら、Save Test をクリックします。

マルチステップ API テストを作成する

マルチステップ API テストは、HTTP リクエストを順番に実行し、複雑なバックエンドシステムで HTTP テストを構成できるようにします。

テストを構成する

マルチステップ API テストを作成すると、HTTP リクエストの順番を定義し、応答データから変数を作成して、後続のステップでそれらの値を再注入できます。

  1. Datadog アプリケーションで、左側のメニューにある UX Monitoring にカーソルを合わせ、Synthetic Tests を選択します。

  2. 右上の New Test ボタンをクリックします。

  3. Multistep API test を選択します。

  4. 単一の API テストの場合と同じように、マルチステップ API テストのロケーションに名前を付け、タグを付け、ロケーションを選択します。

  5. Define steps で、Create Your First Step をクリックします。

    • ステップに名前を追加します。
    • クエリする URL を指定します。
    • カスタムリクエストヘッダー、認証資格情報、本文コンテンツ、cookie を追加するには、Advanced Options を選択します。
    • Test URL をクリックします。
    • オプションで、新しいアサーションを追加し、実行パラメーターを定義して、応答コンテンツから変数を抽出します。
    • 変数の名前を入力し、Response Body でパースされた値をクリックして、変数の値を設定します。
    • Save Step をクリックします。
  6. Add Another Step をクリックして、別のステップを追加します。デフォルトで、最大 10 個のステップを作成できます。

  7. オプションで、URL{{ と入力すると、抽出されたグローバル変数のリストが表示されます。

    • テストステップで注入する抽出変数を選択します。抽出した変数は、Step URL、または Advanced Options > Request Options のリクエストヘッダー、Cookie、HTTP 認証フィールドに追加できます。
  8. テスト頻度、アラート条件、アラートメッセージなど、残りのテスト条件を構成します。

テストを作成する準備ができたら、Save Test をクリックします。

テスト結果

API テストとマルチステップ API テストの詳細ページには、テストコンフィギュレーションの概要、ロケーションごとにテストされたエンドポイントに関連付けられたグローバル稼働時間、応答時間とネットワークタイミングに関するグラフ、およびテスト結果とイベントのリストが表示されます。

失敗したテストのトラブルシューティングを行うには、Test Results まで下にスクロールして、失敗したテスト結果をクリックします。失敗したアサーションと、ステータスコード、応答時間、関連するヘッダーと本文などの応答の詳細を確認して、問題を診断します。

Datadog の APM と Synthetic モニタリングのインテグレーションを使用して、Traces タブでテスト実行から生成されたトレースを確認して、失敗したテスト実行の根本原因にアクセスします。

その他の参考資料