Postman: Guía avanzada con entornos, tests y mock servers
Artículo de Isabel Arnaiz
Si ya revisaste nuestro artículo anterior “Postman: una guía rápida para principiantes” y conoces lo básico de esta herramienta —crear tu cuenta, estructurar tus primeras colecciones y ejecutar solicitudes—, ha llegado el momento de subir de nivel. Aquí profundizaremos en aspectos más avanzados de Postman, como la creación de entornos, variables locales, tests más completos, mock servers y colaboración en equipo.
Crear entornos para un servidor
En el post anterior describimos cómo crear workspaces (espacios de trabajo) y configurar variables de entorno de forma básica. Ahora, profundizaremos en el uso de entornos para gestionar diferentes configuraciones (por ejemplo, URLs, credenciales, etc.) sin necesidad de cambiar manualmente las peticiones.
Dentro de Postman, haz clic en New y luego selecciona Environment.
Asigna un nombre a tu entorno (por ejemplo,
Entorno_Swapi
si vas a probar la API de Star Wars).Añade las variables que necesites. Una de las más comunes es la URL base de tu API. Para SWAPI podría ser:
Variable: host
Initial Value: https://swapi.dev/api/
Current Value: https://swapi.dev/api/
Cada vez que crees o edites tu entorno, guárdalo y selecciónalo en la esquina superior derecha de la ventana de Postman para que tus peticiones usen esas variables.
Colecciones y peticiones con variables de entorno
Una colección permite guardar un conjunto de peticiones. Las colecciones se pueden guardar en diferentes carpetas para tenerlas más organizadas. Para crear una colección es necesario proporcionar un nombre y opcionalmente, una descripción.
Crea una colección usando el botón New → Collection. Asígnale un nombre y, si quieres, una descripción.
Es el momento de crear las peticiones. Es aquí donde se cuece el bacalao. Podemos crear una petición desde varios lugares de Postman. Por ejemplo, desde los tres puntos de nuestra colección, escogiendo “Add Request”.
Una vez creada la Request, hemos de darle un nombre y colocarla en una colección. Para organizar mejor el código, es posible crear carpetas dentro de las colecciones. En ejemplo hemos creado una carpeta llamada StarshipsFolder y dentro hemos creado la petición StarshipsRequest:
Con esto, la petición queda de la siguiente manera:
En este ejemplo intentamos conseguir una lista de naves espaciales, por lo que en la captura de pantalla se puede observar:
Nombre de la petición.
API: La dirección completa sería swapi.co/api/starships, pero como ya guardamos swapi.co/api en la variable de entorno host solo tenemos que escribir {{host}} para usarla.
Entorno.
Método: Puede ser GET, POST, PUT, DELETE…
Automación de tests en Postman
Seguramente ya has visto en la publicación previa que desde la pestaña Tests puedes escribir código JavaScript para validar las respuestas de tus peticiones. Sin embargo, en esta sección daremos un paso extra, mostrando ejemplos más completos:
Tests básicos
Por ejemplo, un test sencillo para validar que la respuesta HTTP sea 200 puede verse así:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
Tests con comprobaciones personalizadas
En una API como SWAPI, tal vez quieras verificar cuántos resultados se obtienen de la petición. Imagina que esperas 100 naves espaciales:
var results = pm.response.json().results;
pm.test("More than 100 starships", function () {
pm.expect(results).to.have.lengthOf(100);
});
Si la API devuelve menos de 100, el test fallará. Puedes verlo en la Consola de Tests de Postman o al usar el Collection Runner.
Guardar y ejecutar
El siguiente paso sería guardar la petición pulsando el botón “Save” y elegir dónde guardarla. Podemos guardarla en la propia colección o en la carpeta que creamos anteriormente. Después, podemos ejecutarla haciendo clic en “Run”.
Una vez ejecutada, vemos que de los dos test, el segundo falló porque esperaba 100 respuestas y únicamente recibió 10.
Una vez tengamos creados los test deseados dentro de la colección, es posible ejecutarlos todos juntos usando el “Collection Runner”. Para acceder a él, seleccionamos el triángulo junto a la colección y hacemos clic en Run:
Se nos abrirá un menú que nos permite configurar cómo queremos ejecutar las peticiones de la colección. Una vez aquí, debemos indicar:
Elegir entre ejecutar la colección entera o sólo una carpeta.
Elegir el entorno donde tenemos almacenadas las variables.
Número de veces que queremos ejecutar los tests.
Run Collection (Iniciar Test)
Una vez finaliza la ejecución se pueden ver los resultados en la parte derecha de la pantalla. Arriba del todo aparecerá un resumen en el que se puede ver cuántos tests fallaron, cuántos no y cuánto tardaron en ejecutarse. Debajo aparecerá lo mismo, pero para cada petición realizada:
Ampliación de tests
En la misma consulta, vamos a generar un tercer test que consistirá en un bucle para almacenar en una variable de entorno llamada “falcon” información sobre una determinada nave de todas las devueltas, buscando por “Millenium Falcon”.
El código será el siguiente:
pm.environment.set("falcon",results.filter(x => x.name === "Millennium Falcon"));
var myStarship = pm.environment.get("falcon");
pm.test("One item only", function () {
pm.expect(myStarship).to.have.lengthOf(1);
console.log(myStarship);
});
PRUEBA:
Número de naves clase “Starfighter”.
Número de naves con mayor tripulación que población en Viladecans.
Variables locales de una colección
Además de poder declarar variables dentro del entorno del servidor, es posible declarar variables locales para ser utilizadas en una colección en concreto. Para ello, debemos ir a la colección deseada y pulsar sobre la opción Variables:
Una vez allí podremos añadir las variables que necesitemos en la tabla presentada, la cual estará dividida en tres columnas:
Variable → En esta columna escribiremos el nombre que queremos que tenga la nueva variable.
Initial Value → Esta columna se utiliza para declarar la variable creada con un valor, y que éste, sea visible si se comparte la colección con otros usuarios.
Current Value → A diferencia de Initial Value, esta columna se utiliza para declarar la variable con un valor, que no será compartido si la colección es compartida con otros usuarios.
A continuación, se muestra un ejemplo de la creación de la variable port:
Una vez tenemos nuestra variable creada, para utilizarla en diferentes peticiones se debe llamar mediante {{nombre_variable}}:
Crear un Mock Server
En muchos casos los equipos de desarrollo necesitan que un conjunto de API’s estén disponibles antes de estar funcionando. Esto normalmente ocurre porque en la mayoría de proyectos, el equipo de desarrollo de Frontend es diferente al de Backend, y pueden llevar ritmos distintos de desarrollo. Para resolver este tipo de situaciones se puede crear un Mock Server.
Un Mock Server consiste en crear una serie de peticiones, en las cuales nosotros mismos hemos programado la salida que tendrán. Para utilizar esta función en Postman debemos primero estar logueados en el programa.
Los pasos a seguir son los siguientes:
Hacer la petición que queramos mockear y guardarla dentro de una colección.
En la petición, seleccionamos los tres puntos para abrir el menú More Actions. A continuación, hay que pulsar Add example y se creará un archivo dentro de la petición.
En el nuevo archivo, se debe escribir dentro del body, en formato JSON, la salida deseada que queremos que devuelva la petición.
A continuación, damos click derecho en la colección en donde está la petición creada y pulsamos Mock Collection.
Introducimos los datos para configurar el servidor.
Copiamos la nueva URL y volvemos a nuestra petición, en donde sustituiremos la URL base por la generada.
Hacemos la llamada y Postman debería devolver la respuesta dada en el body de Add example.
Invitar a colaborar
Si en tu proyecto participan varios testers o desarrolladores, Postman permite que todos trabajéis de manera colaborativa en un mismo workspace:
Pulsa el botón Invite en la esquina superior derecha de tu workspace.
Agrega los correos o nombres de las personas a las que quieres dar acceso. Incluso puedes importar un archivo .txt o .csv con múltiples contactos.
Determina si tendrán permisos de edición o solo de visualización.
En cuestión de segundos, tu equipo podrá compartir colecciones, entornos y mock servers, centralizando todo el trabajo en un mismo espacio.
Con estas funcionalidades, tu experiencia con Postman adquiere un mayor nivel de automatización y organización. Si te quedaste con dudas sobre la configuración inicial de Postman, la creación de tus primeros workspaces o el envío básico de peticiones, recuerda que en "Postman: una guía rápida para principiantes" tienes una introducción paso a paso.
¡Feliz testing! Y si necesitas ayuda más especializada para integrar tus pruebas de API en pipelines de desarrollo o para optimizar tu estrategia de QA, no dudes en contactarnos.