Skip to main content

Postman es una de las herramientas más populares para desarrollar y probar APIs. La he estado utilizando desde 2017, y aprender a usar Postman para probar APIs realmente me ayudó a acelerar mi proceso de pruebas.

En este artículo, te guiaré paso a paso mostrando cómo validar solicitudes API usando Postman. Al final, deberías poder crear tus propias pruebas automatizadas.  

Pero antes de sumergirnos en el tutorial de Postman propiamente dicho, permíteme explicarte algunas cosas sobre las APIs.

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

Este campo es un campo de validación y debe quedar sin cambios.
Name*

¿Qué son las APIs?

API es la abreviatura de Interfaz de Programación de Aplicaciones. Aún no está muy claro, ¿verdad? 😅 Permíteme ampliar esa definición:

Una API es una interfaz que define las formas en que los scripts o programas pueden comunicarse con una aplicación o servicio. Funcionan compartiendo datos e información entre aplicaciones, sistemas y dispositivos.

La API más común actualmente es la REST API, que utilizaré más adelante en este tutorial de pruebas API con Postman. REST también es un acrónimo de REpresentational State Transfer. Las REST APIs se basan en principios como la comunicación cliente-servidor, interfaces uniformes para la comunicación entre sistemas, operaciones sin estado y más.

La comunicación se realiza a través de solicitudes y respuestas HTTP.

La anatomía de las solicitudes HTTP

Las solicitudes HTTP tienen 4 componentes principales:

  • La URL 
  • El endpoint, que representa el recurso específico con el que queremos interactuar.
  • El método HTTP—los métodos HTTP indican al servidor si intentamos recuperar información o qué modificaciones nos gustaría que realizara la aplicación. Hoy cubriremos las operaciones CRUD básicas:
    • Crear: POST
    • Leer: GET
    • Actualizar: PUT
    • Eliminar: DELETE
  • El cuerpo de la solicitud. Esto es opcional, dependiendo del método que usemos. Usaremos el formato JSON (JavaScript Object Notation) en este tutorial de Postman.
Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Este campo es un campo de validación y debe quedar sin cambios.
Name*

Códigos de respuesta HTTP

Cuando realizamos una solicitud HTTP, el servidor nos envía un código de respuesta, que nos indica si la solicitud tuvo éxito o no. Las principales categorías de códigos de respuesta HTTP son:

  • 1xx: respuesta informativa
  • 2xx: éxito
  • 3xx: redirección
  • 4xx: error del cliente
  • 5xx: error del servidor

Me encanta esta representación visual de Julia Evans:

image of http status code
Lista de los códigos de respuesta HTTP más comunes (Fuente)

Puedes encontrar una lista completa de los códigos de respuesta aquí, o si prefieres que te los expliquen con gatos, aquí 🐱‍👓

Bien, creo que ya cubrimos suficiente para comenzar con el tutorial propiamente dicho—¡ahora veamos cómo usar Postman para probar APIs! 

Cómo usar Postman para probar APIs (Paso a paso)

Puedes usar Postman de dos formas: directamente desde el navegador (necesitarás crear una cuenta para poder hacerlo), o instalado en tu equipo local—tener una cuenta es opcional para esta opción. 

Personalmente, prefiero tenerlo instalado, simplemente porque no me gusta el desorden de tantas pestañas abiertas en el navegador, así que esto es lo que usaré a partir de ahora.

Este es un tutorial para principiantes, así que usaré algunos casos de prueba simples para demostrar cómo usar Postman para probar una API. La aplicación de demostración que emplearé es Swagger Petstore, y el escenario que pondré a prueba es:

  • Agrega una nueva mascota a la tienda usando el estado 'pending'
  • Actualiza el estado de la mascota a 'available'
  • Valida que la información de la mascota se haya actualizado
  • Elimina la mascota
  • Confirma que la mascota haya sido eliminada

¡Ok, vamos!

start api test gif

La primera solicitud HTTP en Postman

Postman permite agrupar las solicitudes de API en colecciones. Estas son grupos de solicitudes HTTP relacionadas. Adelante, crea una nueva colección para todas las solicitudes que utilizarás en las pruebas:

http request in postman screenshot
Puedes crear una nueva colección haciendo clic en el botón New, seleccionando Collection e ingresando un nombre para esa colección.

Bien, ahora tienes una colección vacía.

Haz clic en la URL 'Add a request' o el botón '+' en la lista de pestañas:

http add request in postman screenshot
Se abrirá una nueva pestaña donde puedes agregar los elementos de la solicitud que mencioné antes.

La página Swagger UI sirve como documentación para la API.

El recurso (endpoint) que necesitas para crear una nueva mascota es '/pet' y el método HTTP es POST.

Desde la pestaña de modelo, puedes ver el objeto que debes enviar como cuerpo de la solicitud y los tipos de datos para cada valor:

json format screenshot

Usaremos el formato JSON para enviar el cuerpo de la respuesta, así que habilita el botón de radio 'raw' y selecciona JSON del desplegable. 

El cuerpo de la solicitud debería verse algo así:

{

  "id": 0,

  "category": {

    "id": 0,

    "name": "dog"

  },

  "name": "Spike",

  "photoUrls": [

    "string"

  ],

  "tags": [

    {

      "id": 0,

      "name": "bulldog"

    }

  ],

  "status": "pending"

}

Puedes agregar fácilmente el resto de los detalles en la nueva pestaña de solicitud:

http new request tab screenshot
Lo que hicimos aquí fue crear un nuevo objeto, para una mascota llamada Spike, que pertenece a una categoría llamada 'dog', con la etiqueta 'bulldog' y el estado 'pending'. 

Para crear esta nueva mascota en el servidor, haz clic en el botón Send.

Si todo sale bien, recibirás una respuesta exitosa y el cuerpo de la respuesta contendrá alguna información de la mascota, incluyendo su ID.

Necesitaremos usar esto más adelante:

create new pet screenshot

El siguiente paso es actualizar la información de la mascota.

Para esto, necesitas acceder al mismo recurso, '/pet', pero enviar una solicitud con el método HTTP PUT.

Puedes ver qué información necesitas enviar en el cuerpo de la solicitud:

captura de pantalla de actualización de información de mascota

Entonces, crea una nueva solicitud, usando la misma URL de solicitud, selecciona el método PUT y envía el mismo cuerpo de la solicitud, excepto que cambia el valor de status a ‘available’ y utiliza el ID de la respuesta anterior:

{

  "id": <introduce el ID aquí>,

  "category": {

    "id": 0,

    "name": "dog"

  },

  "name": "Spike",

  "photoUrls": [

    "string"

  ],

  "tags": [

    {

      "id": 0,

      "name": "bulldog"

    }

  ],

  "status": "available"

}

La respuesta debería ser nuevamente 200 OK. A continuación, vamos a leer la información de la mascota, para validar que el estado se haya actualizado correctamente. 

El método HTTP para esto es GET y la solicitud acepta el ID como parámetro:

captura de pantalla parámetro id método http

La respuesta contiene todos los datos de la mascota, incluido el estado, que ahora tiene el valor ‘available’:

captura de pantalla respuesta contiene datos de la mascota

La solicitud de eliminación se realizará a la misma URL exacta que el GET (incluyendo el parámetro ID), pero el método HTTP seleccionado será DELETE:

captura de pantalla método http delete

Nuevamente, la solicitud debería ser exitosa y la respuesta HTTP 200:

captura de pantalla solicitud delete exitosa

Si vuelves a enviar la solicitud GET para el mismo ID de mascota, obtendrás un bonito 404 de solicitudes HTTP, porque la mascota ya no se puede encontrar en el servidor:

captura de pantalla 404 solicitud http

Añadir pruebas en Postman

Con los pasos anteriores, pasaste por todos los pasos en el escenario de prueba, pero cada resultado debía ser validado manualmente, comprobando los códigos y cuerpos de respuesta. 

Veamos cómo automatizar las pruebas de la API usando Postman, para que no tengas que realizar estas comprobaciones manualmente.

Comienza con la primera solicitud, el POST, y haz clic en la pestaña Tests (Pruebas) de la solicitud. 

Elige en el lado derecho el fragmento 'Status code: Code is 200'. Los fragmentos en Postman son scripts predefinidos que puedes usar para no tener que escribir el código manualmente. Cada línea de código que se ingresa en la pestaña Tests de la solicitud se ejecutará después de que la solicitud haya sido enviada. 

Puedes cambiar el nombre de la prueba por algo más descriptivo (por ejemplo, 'La creación de la mascota fue exitosa'). 

Vuelve a enviar la solicitud y esta vez verás que la pestaña Test Results de la respuesta muestra 1/1 pruebas exitosas, y el nombre de la prueba aprobada:

captura de pantalla pestaña resultados de pruebas

Puedes añadir este fragmento tanto a las solicitudes PUT como DELETE. 

Para validar el valor de status en la respuesta de la solicitud GET, utiliza el fragmento ‘Response body: JSON value check’:

pm.test("Tu nombre de prueba", function () {

    var jsonData = pm.response.json();

    pm.expect(jsonData.value).to.eql(100);

});

Lo que hace este fragmento de código es guardar la respuesta en una variable llamada jsonData, que va a analizar, leer el valor de un atributo y compararlo con el valor esperado. 

Para nosotros, esto significa que el atributo ‘status’ debe tener el valor ‘available’. Por lo tanto, la prueba debería verse así:

pm.test("El estado de la mascota es 'available'", function () {

    var jsonData = pm.response.json();

    pm.expect(jsonData.status).to.eql("available");

});

Y para la comprobación final, que confirma que la mascota fue eliminada, ejecutando de nuevo el GET, podemos duplicar la solicitud GET inicial y añadir una prueba que valide que esta vez el código de respuesta HTTP es 404:

api tests screenshot

Puedes mover las solicitudes dentro de la colección arrastrándolas y soltándolas.

api tests request screenshot

Uso de variables en Postman

Probablemente notaste que tuvimos que copiar y pegar manualmente el ID de la solicitud POST en todas las solicitudes siguientes. ¿Y si hubiera una manera más fácil de hacerlo?

¡Buenas noticias! Podemos usar variables en Postman para almacenar valores reutilizables. Así, si los valores deben cambiar, podemos cambiarlos en un solo lugar, de la misma manera que intentamos hacer en todas las pruebas automatizadas.

Las variables de Postman tienen tres ámbitos:

  • Global: variables que se puede acceder desde cualquier entorno y cualquier colección
  • Entorno: variables guardadas a nivel de entorno. No utilicé entornos en este tutorial, pero es bueno saber que Postman nos permite crear distintos entornos para los diversos contextos en los que trabajamos. Por ejemplo, entornos separados para Desarrollo, UAT y Producción
  • Colección: estas variables se almacenan a nivel de la colección y pueden ser accedidas desde todas las solicitudes dentro de la colección.

Hay varias maneras de configurar variables de colección. 

La forma más sencilla es simplemente crearlas desde la colección.

Para hacer esto, haz clic en el nombre de la colección, selecciona la pestaña de variables y escribe el nombre y valor de la variable:

api test collection screenshot

Para usar esta variable, reemplaza el valor original en las solicitudes por el nombre de la variable escrito entre dos llaves, así: {{petId}}

Necesitarás usarla dentro de los cuerpos de las solicitudes POST y PUT, para el parámetro “id”, de esta forma:

"id": {{petId}},

Y en la URL de las solicitudes GET y DELETE, así: https://petstore.swagger.io/v2/pet/{{petId}}

Puedes ver la versión final de la colección aquí.

Ejecutar la colección de Postman

¡Y ahora viene la mejor parte! Todo el objetivo de este tutorial era mostrarte cómo ejecutar pruebas automatizadas usando Postman. Todo lo que hicimos antes fue para prepararte para esta parte. 

Para ejecutar las pruebas automáticamente, haz clic derecho sobre el nombre de la colección, o pasa el cursor sobre él, luego haz clic en el menú de tres puntos junto al nombre y selecciona ‘Ejecutar colección’. 

api test run collection screenshot

Esto abrirá el Collection Runner:

collection runner screenshot

En esta pantalla, puedes seleccionar cuáles de tus solicitudes quieres enviar, puedes cambiar su orden, puedes ejecutar la colección varias veces (aumentando el número de Iterations), o puedes añadir demoras entre las solicitudes.

Puedes dejar los valores predeterminados por ahora y hacer clic en el botón ‘Ejecutar’. Una vez que finalice la ejecución, podrás ver los resultados de las pruebas para todos los escenarios que queríamos probar, ¡con solo un clic sencillo:

captura de pantalla de prueba de todas las APIs

¡Y eso fue todo! Si seguiste todos los pasos de este artículo, ¡ya deberías tener tus primeras pruebas automatizadas de API en Postman! 🚀

Resumen

Postman es una herramienta muy útil cuando se trata de probar APIs, y este artículo solo fue una introducción. Sin embargo, logramos cubrir cómo enviar solicitudes HTTP, cómo leer las respuestas, cómo crear pruebas y cómo verificar automáticamente los resultados de las pruebas.

Si te gustó este artículo, suscríbete al boletín QA Lead para estar al día con todas las noticias y tendencias en testing de software.