Talking About TestingATT</>
Testing de API con Bruno

Obtén 100% en el cuestionario para continuar

Lección
Vista previa gratuita

Tu primera petición

Envía una petición GET, lee la respuesta y compruébala con aserciones declarativas.

Empecemos por la verificación más importante de cualquier API, el camino feliz: enviar una petición GET al endpoint /emojis y confirmar que responde con éxito, con el código de estado 200 y un cuerpo con la estructura esperada.

Explorando a mano, enviarías la petición, mirarías la respuesta por encima y seguirías adelante. La diferencia en este curso es que escribes lo que esperas en forma de aserciones, para que Bruno lo compruebe por ti cada vez que la petición se ejecute, incluso en CI, cuando nadie está mirando.

Resumen de comandos 📖

Crear una petición

Haz clic derecho en la colección en la barra lateral (o usa su menú de tres puntos) y elige New Request. Dale un nombre, elige el método y escribe la URL.

Sintaxis:

Name:   <un nombre que describa lo que la petición verifica>
Method: GET
URL:    http://localhost:3001/emojis
👨‍🏫 El nombre se convierte en el nombre del archivo en el disco, y es la etiqueta que vas a leer en cada reporte de ejecución. Nombra las peticiones por lo que verifican, y no solo por el endpoint.

Enviar una petición y leer el panel de respuesta

Haz clic en el botón de flecha al final de la barra de URL (o presiona Cmd+Enter / Ctrl+Enter). El panel de respuesta a la derecha muestra:

  • El código y el texto del estado (por ejemplo, 200 OK)
  • El tiempo que tardó la petición y el tamaño de la respuesta
  • El cuerpo de la respuesta, formateado como JSON
  • Los headers de la respuesta, en su propia pestaña
👨‍🏫 La pestaña Timeline muestra la petición exacta que envió Bruno, con la URL final y los headers. Cuando una respuesta te sorprenda, revisa lo que realmente se envió antes de culpar a la API.

La pestaña Assert (aserciones declarativas)

La pestaña Assert te permite escribir verificaciones sin escribir código. Cada fila tiene tres partes: una expresión (qué verificar), un operador (cómo comparar) y un valor (lo que esperas, cuando el operador lo necesita).

Sintaxis:

<expresión>   <operador>   <valor>

Ejemplo:

res.status              eq         200
res.body.emojis         isArray
res.body.pageInfo       isDefined

Algunos operadores que vas a usar seguido:

  • eq y neq: igual y distinto
  • isArray, isNumber, isString, isDefined: verificaciones de tipo y de presencia
  • gt, gte, lt, lte: comparaciones numéricas
  • length: la longitud de un array o de un string

Después de enviar la petición, la pestaña Tests del panel de respuesta lista cada aserción como aprobada o fallida.

Cómo se ve una aserción en el disco

Bruno guarda la petición, incluidas sus aserciones, como un archivo YAML dentro de la carpeta de la colección:

Ejemplo:

info:
  name: get-emojis
  type: http
  seq: 1

http:
  method: GET
  url: http://localhost:3001/emojis

runtime:
  assertions:
    - expression: res.status
      operator: eq
      value: "200"
    - expression: res.body.emojis
      operator: isArray
👨‍🏫 Nunca tienes que editar este archivo a mano, pero leerlo una vez explica por qué las colecciones de Bruno funcionan tan bien en git: una aserción nueva es un diff de dos líneas que cualquiera puede revisar.

Contenido sugerido 📚 y enlaces a la documentación 🔗

Ejercicio 🎯

En tu colección emoji-api-tests, crea una petición llamada get-emojis que envíe un GET a http://localhost:3001/emojis. Envíala y lee el panel de respuesta.

Después, en la pestaña Assert, agrega aserciones que comprueben que:

  • res.status es igual a 200
  • res.body.emojis es un array
  • res.body.pageInfo está definido
  • res.body.pageInfo.currentPage es igual a 1

Envía la petición de nuevo y confirma que todas las aserciones pasan. Puedes ver el resultado de cada aserción, si pasó o falló, en la pestaña Tests del panel de respuesta. Luego cambia el estado esperado a 201, envíala y mira cómo esa aserción falla. Vuelve a 200 antes de seguir.

👨‍🏫 Ver fallar una aserción a propósito no es una pérdida de tiempo. Una aserción que nunca viste fallar podría no estar verificando nada.

Guarda la petición (Cmd+S / Ctrl+S) y luego ejecuta git status en tu terminal para ver el archivo nuevo. Haz commit y push.

Muéstrale al mundo lo que aprendiste 🌎

Para mostrarle a tu red profesional lo que aprendiste en esta lección, publica lo siguiente en LinkedIn.

Estoy haciendo el curso "Testing de API con Bruno" con @Walmyr Lima e Silva Filho en la @Talking About Testing School, y acabo de crear mi primera petición en Bruno con aserciones declarativas sobre el código de estado y el cuerpo de la respuesta, guardada como un archivo plano en mi repositorio de git. #TalkingAboutTesting #TATSchool #APITestingWithBruno #Bruno #APITesting

👨‍🏫 No olvides mencionarme en tu publicación. Aquí está mi perfil de LinkedIn.

Cuestionario

Pregunta 1 de 2
Puntuación: 0

¿Por qué vale la pena cambiar una aserción para que falle a propósito y luego deshacer el cambio?

Obtén 100% en el cuestionario para continuar