エンドポイントのAPIテスト
Splunk Synthetic Monitoring の API テストを使用して、アプリケーションのコア機能を提供する API リクエストを監視し、エンドポイントのパフォーマンスを追跡します。
APIテストは、APIエンドポイントの機能とパフォーマンスをチェックする柔軟な方法を提供します。
API ファーストの開発への継続的なシフトにより、コアのフロントエンド機能を提供するバックエンドサービスをモニタリングする必要性が高まっています。マルチステップの API インタラクションをテストすることに関心がある場合でも、エンドポイントのパフォーマンスを可視化する場合でも、API テストは目標の達成に役立ちます。
API テストのユースケース
APIテストでは、以下が可能です:
-
個々のAPIエンドポイントの可用性とパフォーマンスを確認する
-
APIエンドポイントが正しいデータとレスポンス座標を返していることを確認します。
-
変数と動的データ入力を使用したトランザクションAPIワークフローをテストする
-
HTTPリクエストまたはレスポンスの任意の部分に基づいてアラートをセットアップする
API テスト中に起こること
API テストでは、Splunk Synthetic Monitoring がテストしたい API エンドポイントを呼び出し、エンドポイントのパフォーマンスとアップタイムの特性をレポートします。このテストによって、お客様が API の問題に直面する前に、API のパフォーマンスを先回りしてモニタリングできます。
API要求
API テストは、1 つ以上の API リクエストで構成されます。リクエストでは、Splunk Synthetic Monitoring はエンドポイントを呼び出し、インタラクションからデータを収集します。リクエスト内には、セットアップステップ、リクエストステップ、検証ステップを含めることができます。
セットアップステップ
セットアップステップには、JavaScript の一部を実行したり、リクエストに必要となる変数を既存のデータや以前のリクエストのレスポンスボディから抽出したりするなど、API リクエストをセットアップするために必要なアクションが含まれます。
次の表は、作成できるセットアップ手順のタイプを示しています:
|
設定ステップのタイプ |
説明 |
|---|---|
|
保存 |
テストの後半で再利用するデータの一部を保存します。 |
|
抽出 |
フォーマットされたデータ(JSON、XML、HTML)から変数を抽出します。 |
|
JavaScript |
カスタム JavaScript コードを実行します。Splunk Synthetics は、一部の JavaScript の関数のみをサポートしています。詳細は、JavaScriptのSyntheticsサポートを参照してください。 |
リクエストステップ
リクエストステップは、API リクエストのボディを形成します。ここに API リクエスト URL を入力します。GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS リクエストを作成できます。
リクエストステップでは、1つ以上のリクエストヘッダーを追加することができます。
検証ステップ
API リクエストの一部として 1 つ以上の検証ステップを含めることもできます。検証ステップでは、リクエストが期待通りのレスポンスを返したかどうかをチェックしたり、JavaScript を実行したり、レスポンスボディから値を保存したり抽出したりすることができます。
次の表は、作成できる検証ステップのタイプを示しています:
|
ステップタイプ |
説明 |
|---|---|
|
アサート |
2つの値(文字列または数値)についてアサーションを行います。 |
|
保存 |
テストの後半で再利用するデータの一部を保存します。 |
|
抽出 |
フォーマットされたデータ(JSON、XML、HTML)から変数を抽出します。 |
|
JavaScript |
カスタム JavaScript コードを実行します。Splunk Synthetics は、一部の JavaScript の関数のみをサポートしています。詳細は、JavaScriptのSyntheticsサポートを参照してください。 |
JavaScriptのSyntheticsサポート
Splunk Synthetics が提供するは、スクリプト実行用の V8 エンジンのみです。Node.js ランタイム環境は提供しません。これは、Node.js 機能をサポートしていないことを意味します。たとえば、fs を使用したファイルシステムアクセス、http を使用した HTTP リクエスト、setTimeout または同様の機能を使用したイベントループ、require や module.exportsなどのモジュールはサポートされていません。