• English日本語한국어
  • Log inStart now

Write synthetic API tests

Important

This document is targeted to the Node.js 16.10 scripted API runtime and newer. Details for the http-request based Node.js 10 and older runtimes

Scripted API monitors check your API endpoints to ensure they're functioning correctly. To create a scripted API monitor, go to one.newrelic.com > Synthetic monitoring > Create a monitor, then select the Endpoint availability tile.

Tip

To view and share other API test examples, visit the synthetics scripts section in Support Forum or the Synthetic Monitoring Quickstarts Library.

Use API got module

API tests are powered by the got module, which is available through the $http object. The $http object provides a custom request-like experience with got, giving your monitors backwards compatibility for basic use cases. The request-like experience provided by the $http object will also be returned for any customers attempting to use request directly in Node.js 16 and newer scripted API runtimes.

Result timing details will be provided as long as you use the $http object. For scripted API use cases not covered by the $http object, you can use the $har object to report custom timing details.

Important

After a maximum run time of three minutes, New Relic manually stops the script.

one.newrelic.com > Synthetic monitoring > Create monitor: The script editor suggests functions, selectors, and other elements to simplify scripting commands (available in GitHub).

Configure request options

To start your script:

  • Declare a variable (such as options) to store your got options object.
  • Define request options such as the URL endpoint and custom headers.

Tip

For a full list of supported options, see got options in the got documentation on GitHub.

Here's an example of optional metadata in the options object:

Send a GET request

To make a GET request, use the $http.get method to submit your request. Define your request options, make your request using $http.get, then validate the response to ensure your endpoint is returning the correct results.

Send a POST request

To make a POST request, use the $http.post method to submit your request. Define your request options, make your request using $http.post, then validate the response to ensure your endpoint is returning the correct results.

Validate results

To validate your results, import the assert module to define your test case. Call an assert method to validate your endpoint's response. If any assert functions fail, the entire monitor will be considered a failed check. This may trigger alert notifications and affect your metrics.

Important

Synthetic monitoring does not allow thrown exceptions. Thrown exceptions result in script failure. Use the assert module to validate your results, and use console.log() to log results to the synthetic's console.

If you haven't already, create your free New Relic account below to start monitoring your data today.

Copyright © 2024 New Relic Inc.

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