• ログイン今すぐ開始

合成APIテストを記述する

重要

このドキュメントは、Node.js 16.10のスクリプト化されたAPIランタイム以降を対象としています。http-requestベースのNode.js 10以前のランタイムの詳細

正しく機能することを確認するために、合成モニタリングのAPIテストを使用してAPIエンドポイントを監視します。New Relicは、内部でgotモジュールを使用してエンドポイントへHTTPコールをして、結果を検証します。

ここには、リクエストを送信するために$httpオブジェクトを使用する方法を示すサンプル関数が記載されています。この$httpオブジェクトは、非推奨のrequestモジュールを使用せずに、gotを利用して基本的なユースケースに下位互換性を提供し、カスタムrequestのような体験を実現します。requestの高度なユースケースのすべてが、この下位互換性によってサポートされているわけではありません。このオブジェクトで使用できるオプションの詳細については、gotモジュールreadmeを参照してください。gotモジュールのドキュメントには、以前のスクリプト化されたAPIランタイムで使用したrequestモジュールから予想される変更点をハイライトした移行ガイドが含まれています。

$httpオブジェクトが提供するrequestのような体験は、Node.js 16以降のスクリプト化されたAPIランタイムで、requestを直接使用しようとする顧客にも返されます。

ヒント

他のAPIテストの例を表示して共有するには、Explorers Hubの合成スクリプトセクションまたは合成モニタリングのクイックスタートライブラリを参照してください。

API gotモジュールを使用

APIテストは、$httpオブジェクトで使用できるgotモジュールによって作動します。モニターの作成方法については、モニターの追加を参照してください。

リクエストのためのメタデータの定義方法GETリクエストの作成方法POSTリクエストの作成方法、および結果の検証方法を読んでください。

$httpオブジェクトを使用している限り、結果のタイミングの詳細が表示されます。$httpオブジェクトに含まれていないスクリプト化されたAPIユースケースでは、$harオブジェクトを使用してカスタムタイミングの詳細をレポートできます。

重要

最大で3分間のランタイム後、New Relicはスクリプトを手動で停止します。

one.newrelic.com > Synthetic monitoring >Create monitor:スクリプトエディタは、スクリプトコマンド(GitHubで使用可能)を単純化するために、関数、セレクタ、その他の要素を提案します。

リクエストオプションを設定する

スクリプトを開始する場合は、以下の手順に従います。

  • 変数(optionsなど)を宣言して、gotオプションオブジェクトを保存します。
  • URLエンドポイントやカスタムヘッダーなどのリクエストオプションを定義します。

ヒント

サポートされているオプションの完全なリストについては、GitHubのgotドキュメントにあるgotオプションを参照してください。

オプションオブジェクト内のオプションメタデータの例:

GETリクエストを送信する

GETリクエストをするには、$http.getメソッドを使用してリクエストを送信します。リクエストオプションを定義し、$http.getを使用してリクエストを行ってから、レスポンスを検証してエンドポイントが正しい結果を返していることを確認します。

POSTリクエストを送信する

POSTリクエストをするには、$http.postメソッドを使用してリクエストを送信します。リクエストオプションを定義し、$http.postを使用してリクエストを行ってから、レスポンスを検証してエンドポイントが正しい結果を返していることを確認します。

結果を検証する

結果を検証するには、assertモジュールをインポートして、テストケースを定義します。assertメソッドを呼び出して、エンドポイントのレスポンスを検証します。assert関数のいずれかが失敗する場合、モニター全体が失敗したチェックとみなされます。これにより、アラート通知がトリガされ、メトリクスに影響する場合があります。

重要

合成モニタリングは例外のスローを許可しません。例外がスローされると、スクリプトが失敗します。assertモジュールを使用して結果を検証し、console.log()を使用して合成コンソールに結果をログします

Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.