Información general

Los tests de API monitorizan proactivamente tus servicios más importantes para que estén disponibles en cualquier momento y desde cualquier lugar. Los tests de API únicos vienen en ocho subtipos que te permiten iniciar solicitudes en las diferentes capas de red de tus sistemas (HTTP, SSL, DNS, WebSocket, TCP, UDP, ICMP y gRPC). Los tests de API multipaso te permiten ejecutar tests de API en secuencia para monitorizar el tiempo de actividad de los recorridos clave a nivel de API.

Crear un test de API único

Los tests HTTP monitorizan los endpoints de tu API, y te avisan cuando la latencia de la respuesta es alta o cuando no cumple con alguna de las condiciones que hayas definido, tales como el código de estado HTTP previsto, los encabezados de respuesta o el contenido del cuerpo de la respuesta.

Los siguientes ejemplos muestran cómo crear un test HTTP, un subtipo de tests de API única.

  1. En el sitio Datadog, pasa el ratón por encima de Experiencia digital y selecciona Tests (en Monitorización y tests Synthetic).

  2. Haz clic en New Testt (Nuevo test) > New API test (Nuevo test de API).

  3. Puedes crear un test utilizando una de las siguientes opciones:

    • Crea un test a partir de una plantilla:

      1. Pasa el ratón por encima de una de las plantillas ya rellenadas y haz clic en View Template (Ver plantilla). Se abrirá un panel lateral en el que se mostrará la información de configuración rellenada previamente, que incluye: detalles de tests, detalles de solicitudes, aserciones, condiciones de alerta y parámetros de monitor.
      2. Haz clic en +Create Test (+Crear test) para abrir la página Definir solicitud, en la que podrás revisar y editar las opciones de configuración rellenadas previamente. Los campos presentados son idénticos a aquellos disponibles cuando se crea un test desde cero.
      3. Haz clic en Save Details (Guardar detalles) para enviar tu test de API.

    • Crea un test desde cero:

      1. Para crear un test desde cero, haz clic en la plantilla + Start from scratch (+ Empezar desde cero) y selecciona el tipo de solicitud HTTP.

      2. Añade la URL del endpoint que quieres monitorizar. Si no sabes con qué empezar, puedes utilizar https://www.shopist.io/, una aplicación web de comercio electrónico de tests. Si utilizas la URL Shopist de test, el nombre de tu test se rellena automáticamente como Test on shopist.io.

      3. Opcionalmente, selecciona Opciones avanzadas para configurar opciones de solicitud personalizadas, certificados, credenciales de autenticación y crear variables globales or variables locales seguras para entradas dinámicas.

        Nota: Escribe {{ en cualquier campo relevante para seleccionar una variable e inyectar su valor en tus opciones de test.

      4. Opcionalmente, puedes configurar etiquetas (tags) como env:prod y app:shopist en tu test. Las etiquetas te permiten mantener tu conjunto de tests organizado y encontrar rápidamente los tests que te interesan en la página de inicio.

      5. Haz clic en Send (Enviar) para activar un test de ejemplo.

        Configuración de test de API
      6. Haz clic en Create Test (Crear test) para enviar tu test de API.

Definición de aserciones

Al hacer clic en Send (Enviar), se rellenan automáticamente las aserciones básicas sobre la respuesta de tu endpoint. Las aserciones definen qué es una ejecución de test satisfactoria.

En este ejemplo, se rellenan tres aserciones predeterminadas después de activar la ejecución del test de prueba:

Aserciones predeterminadas

Las aserciones son totalmente personalizables. Para añadir una aserción personalizada, haz clic en los elementos de la vista previa de la respuesta, como los encabezados, o haz clic en New Assertion (Nueva aserción) para definir una nueva aserción desde cero.

Seleccionar localizaciones

Selecciona una o varias Localizaciones gestionadas o Localizaciones privadas desde las que ejecutar tu test. Datadog’s out-of-the-box managed locations allow you to test public-facing websites and endpoints from regions where your customers are located.

AWS:

AmericasAsia PacificEMEA
Canada CentralHong KongBahrain
Northern CaliforniaJakartaCape Town
Northern VirginiaMumbaiFrankfurt
OhioOsakaIreland
OregonSeoulLondon
São PauloSingaporeMilan
SydneyParis
TokyoStockholm

GCP:

AmericasAsia PacificEMEA
DallasTokyoFrankfurt
Los Angeles
Oregon
Virginia

Azure:

RegionLocation
AmericasVirginia

The Datadog for Government site (US1-FED) uses the following managed location:

RegionLocation
AmericasUS-West

La aplicación de Shopist está disponible públicamente en https://www.shopist.io/, por lo que puedes elegir cualquier localización gestionada desde la que ejecutar tu test. Para probar aplicaciones internas o simular el comportamiento del usuario en regiones geográficas concretas, mejor utiliza las localizaciones privadas.

Indicar la frecuencia del test

Selecciona la frecuencia con la que quieres que se ejecute tu test. Puedes mantener la frecuencia predeterminada de 1 minuto.

Además de ejecutar tu test Synthetic de forma programada, puedes activarlo manualmente o desde tus pipelines de CI/CD.

Definir las condiciones de alerta

Puedes definir las condiciones de alerta para asegurarte de que tu test no se active en situaciones como un incidente breve y esporádico en la red. De este modo, solo recibirás alertas en caso de que haya problemas reales con tu endpoint.

Puedes indicar el número de fallos consecutivos que deberían producirse antes de considerar que una localización ha fallado:

Retry test 2 times after 300 ms in case of failure

También puedes configurar tu test para activar solo una notificación cuando el endpoint deje de funcionar durante cierto tiempo y en un número determinado de localizaciones. En el siguiente ejemplo, la regla de alerta está configurada para enviar una notificación si el test falla durante tres minutos en dos localizaciones distintas:

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

Configurar el monitor de tests

Redacta el mensaje de la alerta y añade la dirección de correo electrónico a la que deben enviarse las alertas del test. También puedes usar integraciones de notificaciones como Slack, PagerDuty, Microsoft Teams y webhooks. Para activar una alerta Synthetic para estas herramientas de notificación, primero deberás configurar la integración correspondiente.

Cuando estés listo para guardar la configuración y el monitor del test, haz clic en Create (Crear).

Crear un test de API multipaso

Los test de API multipaso te permiten monitorizar las transacciones empresariales clave en la API.

Información general de un test de API multipaso de Synthetics

De forma similar a los tests de API, los tests de API multipaso te avisan cuando tus endpoints funcionan demasiado lentos o no cumplen alguna de las condiciones que has definido. Puedes crear variables a partir de respuestas de pasos individuales y volver a introducir tus valores en pasos posteriores, encadenando pasos de forma que imiten el comportamiento de tu aplicación o servicio.

El test de ejemplo que puedes ver a continuación muestra cómo se crea un test de API multipaso que monitorice la adición de un elemento a un carrito. Este test consta de tres pasos:

  • Obtención de un carrito
  • Obtención de un producto
  • Adición del producto al carrito

Si no sabes en qué endpoints de la API crear tu test de API multipaso, utiliza los endpoints de ejemplo que aparecen a continuación.

Para crear un test de API multipaso nuevo, haz clic en New Test (Nuevo test) > Multistep API test (Test de API multipaso). Añade un nombre de test, como por ejemplo Añadir un producto al carrito, incluye etiquetas y selecciona localizaciones.

Obtener un carrito

  1. En Define steps (Definir pasos), haz clic en Create Your First Step (Crear tu primer paso).

  2. Añade un nombre a tu paso. Ejemplo: Obtener un carrito.

  3. Especifica el método HTTP y la URL que deseas consultar. Puedes introducir POST y https://api.shopist.io/carts.

  4. Haz clic en Test URL para crear un elemento de carrito en el backend de la aplicación de Shopist.

  5. Puedes mantener las aserciones predeterminadas o modificarlas.

  6. Si lo deseas, puedes definir los parámetros de ejecución.

    Si seleccionas Continue with test if this step fails (Continuar con el test si este paso sale mal), podrás asegurarte de que se comprueba una recopilación completa de endpoints o de que se ha ejecutado el último paso de la limpieza, independientemente de que los pasos anteriores hayan salido bien o mal. La función del paso Retry (Reintentar) es útil en situaciones en las que sabes que el endpoint de la API puede tardar algún tiempo en responder.

    En este ejemplo, no se necesita ningún parámetro de ejecución en concreto.

  7. Para crear una variable a partir del valor del ID del carrito situado al final del encabezado location:

    • Haz clic en Extract a variable from response content (Extraer una variable del contenido de la respuesta).
    • Ponle a tu variable el nombre CART_ID.
    • En Response Header (Encabezado de la respuesta), selecciona location.
    • En el campo Parsing Regex (Expresión regular de parseo), añade una expresión habitual, como (?:[^\\/](?!(\\|/)))+$.
    Variable extraída del contenido de la respuesta
  8. Haz clic en Save Variable (Guardar variable).

  9. Cuando hayas terminado de crear este paso de test, haz clic en Save Step (Guardar paso).

Obtener un producto

  1. En Define another step (Definir otro paso), haz clic en Add Another Step (Añadir otro paso). Por defecto, puedes crear un máximo de diez pasos.
  2. Ponle un nombre a tu paso. Ejemplo: Obtener un producto.
  3. Especifica el método HTTP y la URL que deseas consultar. Aquí, puedes añadir: GET y https://api.shopist.io/products.json.
  4. Haz clic en Test URL para obtener una lista de los productos disponibles en la aplicación de Shopist.
  5. Puedes mantener las aserciones predeterminadas o modificarlas.
  6. Opcionalmente, define los parámetros de ejecución. En este ejemplo, no se necesita ningún parámetro de ejecución en concreto.
  7. Para crear una variable a partir del ID del producto que se encuentra en el cuerpo de la respuesta:
    • Haz clic en Extract a variable from response content (Extraer una variable del contenido de la respuesta).
    • Ponle a tu variable el nombre PRODUCT_ID.
    • Haz clic en la pestaña Response Body (Cuerpo de la respuesta).
    • Haz clic en la clave $oid de cualquier producto para generar una ruta JSON, como $[0].id['$oid'].
  8. Haz clic en Save Variable (Guardar variable).
  9. Cuando hayas terminado de crear este paso de test, haz clic en Save Step (Guardar paso).

Añadir un producto al carrito

  1. Haz clic en Add Another Step (Añadir otro paso) para realizar el último paso, es decir, añadir un producto a tu carrito.

  2. Añade un nombre a tu paso. Ejemplo: Añadir un producto al carrito.

  3. Especifica el método HTTP y la URL que deseas consultar. Aquí, puedes añadir: POST y https://api.shopist.io/add_item.json.

  4. En la pestaña Request Body (Cuerpo de la solicitud), elige el tipo de cuerpo application/json e inserta lo siguiente:

        {
          "cart_item": {
            "product_id": "{{ PRODUCT_ID }}",
            "amount_paid": 500,
            "quantity": 1
          },
          "cart_id": "{{ CART_ID }}"
        } 
        
  5. Haz clic en Test URL para añadir el producto extraído en el paso 2 al carrito que has creado en el paso 1 y devolver una URL para proceder al pago.

  6. En Add assertions (optional) (Añadir aserciones [opcional]), haz clic en Response Body (Cuerpo de la respuesta) y en la tecla url para que tu test confirme que el recorrido ha finalizado con una respuesta que contiene la URL de pago.

  7. En este último paso, no se necesitan parámetros de ejecución ni extracciones de variables.

  8. Cuando hayas terminado de crear este paso de test, haz clic en Save Step (Guardar paso).

Pasos del test creados

A continuación, puedes configurar el resto de las condiciones del test, tales como la frecuencia y las condiciones de alerta, así como el monitor del test. Cuando estés listo para guardar la configuración y el monitor de tu test, haz clic en Create (Crear).

Para más información, consulta Usar monitores de tests Synthetic.

Consultar los resultados del test

En las páginas API test (Test de API) y Multistep API test detail (Detalles del test de API multipaso), encontrarás la información general de la configuración del test, el tiempo de actividad global asociado a los endpoints del test según su localización, los gráficos con el tiempo de respuesta y los tiempos de red, así como una lista de los resultados y eventos del test.

Para solucionar un problema de un test fallido, baja hasta Test Results (Resultados del test) y haz clic en un resultado del test que salió mal. Para diagnosticar el problema, revisa las aserciones fallidas y los detalles de la respuesta, tales como el código de estado, el tiempo de respuesta, así como los encabezados y el cuerpo asociados.

Fallo en el test de API

Consulta la traza (trace) generada a partir de la ejecución del test fallido en la pestaña Trazas y descubre la causa raíz mediante la integración de APM con la monitorización Synthetic de Datadog.

Referencias adicionales