Información general

Las pruebas de API monitorizan proactivamente tus servicios más importantes para que estén disponibles en cualquier momento y desde cualquier lugar. Las pruebas de API únicas 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). Las pruebas de API multipaso te permiten ejecutar pruebas 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.

Información general de un test HTTP de Synthetics
     

El siguiente ejemplo muestra cómo crear un test HTTP, que es un subtipo de test de API único.

Definir una solicitud

  1. En el sitio de Datadog, pasa el cursor sobre UX Monitoring (Monitorizar la experiencia de uso) y selecciona Synthetic Tests (Tests Synthetic).

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

  3. Selecciona el tipo de solicitud HTTP.

  4. Define tu solicitud:

    • 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 prueba. Al definir el endpoint que deseas probar, se rellena automáticamente el nombre de tu test en Test on www.shopist.io.

    • Puedes seleccionar Advanced Options (Opciones avanzadas) para establecer las opciones de solicitud, certificados, credenciales de autenticación y otros parámetros personalizados.

      Nota: Puedes crear variables globales seguras para almacenar credenciales y variables locales para generar marcas de tiempo dinámicas para la carga útil de tu solicitud. Después de crear estas variables, escribe {{ en cualquier campo relevante y selecciona la variable para introducir su valor en tus opciones de test.

      En este ejemplo, no se necesita ninguna opción avanzada en concreto.

    • Puedes definir etiquetas (tags) tales como env:prod y app:shopist en tu test. Las etiquetas te permiten mantener organizado tu conjunto de tests, así como encontrar rápidamente en la página de inicio los tests que te interesan.

  5. Haz clic en Test URL para activar la ejecución de un test de prueba.

Configuración del test de API

Definir aserciones

Al hacer clic en Test URL, 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.

AmericasAPACEMEA
Canada Central (AWS)Hong Kong (AWS)Cape Town (AWS)
Northern California (AWS)Mumbai (AWS)Frankfurt (AWS)
Northern Virginia (AWS)Seoul (AWS)Ireland (AWS)
Ohio (AWS)Singapore (AWS)London (AWS)
Oregon (AWS)Sydney (AWS)Paris (AWS)
São Paulo (AWS)Tokyo (AWS)Stockholm (AWS)
Virginia (Azure)Osaka (AWS)Milan (AWS)
Jakarta (AWS)Bahrain (AWS)

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

Americas
US-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 condiciones para las alertas

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 la prueba 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 las pruebas de API, las pruebas de API multipaso te avisan cuando tus endpoints se vuelven 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 prueba, como por ejemplo Añadir un producto al carrito, incluye etiquetas (tags) 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.

Leer más

PREVIEWING: piotr_wolski/update-dsm-docs