Automatiza tus pruebas con Newman: la CLI de Postman
Artículo de Daniel Balletbó; Isabel Arnaiz
Antes de adentrarnos en la ejecución de Postman vía línea de comandos, es importante recordar los pasos previos que hemos visto en nuestros artículos anteriores:
En Postman: una guía rápida para principiantes, aprendimos a crear cuentas, estructurar colecciones iniciales y ejecutar solicitudes básicas.
En Postman: guía avanzada con entornos, tests y mock servers, profundizamos en la configuración de entornos, la automatización de pruebas y la colaboración en equipo.
Habiendo abordado esos fundamentos, podemos ahora introducir Newman, la versión de línea de comandos de Postman que permite integrar nuestras colecciones con sistemas de integración continua como Jenkins, clave para la automatización de pruebas.
Instalar Newman es muy fácil:
npm install -g newman
Ejecutar Newman con un fichero JSON local
Antes de empezar a ejecutar el test primero debemos exportar el entorno desde Postman, haciendo clic en el engranaje, después en el icono de descargar de la colección y finalmente dando un nombre coherente y guardando:
En segundo lugar, exportaremos la colección, haciendo clic en los tres puntos de la colección y escogiendo la opción “Export”:.
Con esto tenemos dos Json, uno para el entorno y otro para la colección en la misma carpeta. Accediendo a esa carpeta podemos ejecutar la colección completa:
newman run -e swenvironment.json swcollection.json
...o únicamente una carpeta, con el argumento --folder:
newman run -e swenvironment.json swcollection.json --˙folder Starships
La salida devuelve casi lo mismo que devolvía la de Postman: La ejecución de cada petición y un resumen indicando cuántos tests fallaron y cuántos no.
Ejecutar Newman con la colección siempre actualizada
Si se usa un archivo JSON para ejecutar las colecciones con Newman surge un problema.
¿Qué ocurre si la colección cambia después de haberla exportado?
Exportar una colección nos hace un snapshot de los datos que tenga la colección en ese momento, así que para actualizar el archivo con los datos actuales se debería volver a exportar.
Hay otra solución más sencilla para que siempre tengas la colección actualizada. En vez de exportar manualmente vamos a utilizar la API de Postman para conseguirla. Para ello, primero de todo necesitaremos crear una Postman API Key.
Crear una Postman API Key
Para crear la Key necesitaremos iniciar sesión en Postman. Una vez lo estemos, pulsamos en nuestro avatar en la esquina superior derecha > Account Settings. A continuación, seleccionamos API Keys.
Una vez allí, para crear una nueva Key debemos pulsar el botón Generate API Key:
A continuación, escribimos el nombre de la key y seleccionamos Generate API Key. En ese momento, tendremos nuestra key generada, la cual tendremos que copiar y guardarla.
Obtener el collection_uid
de la colección deseada
Una vez tenemos nuestra key disponible, debemos conseguir el collection_uid
de la colección que queramos utilizar con Newman. Para ello, utilizaremos la API de Postman para lanzar una petición al endpoint GET All Collections. La URL es la siguiente: https://api.getpostman.com/collections
IMPORTANTE: Para que funcione, antes de realizar la llamada debemos añadir en los Headers una nueva variable llamada X-Api-Key con el valor de la key de Postman generada previamente.
Con el collection_uid
conseguido, iremos a nuestra línea de comandos y ejecutamos lo siguiente, sustituyendo lo añadido entre [] por tus valores:
newman run https://api.getpostman.com/collections/[COLLECTION_UID]?apikey=[API_KEY]
De esta forma, podrás lanzar la colección indicada siempre actualizada con el último cambio realizado en las peticiones.
Obtener el environment_uid
del entorno deseado
Si necesitamos el entorno actualizado también procedemos de igual manera que en el apartado anterior; pero utilizando el endpoint https://api.getpostman.com/environments. Aquí podemos leer la documentación completa.