Automatización con Newman

1. ¿Qué es Newman y por qué usarlo?

Newman es la contraparte de línea de comandos del Collection Runner de Postman. Te permite ejecutar y probar una colección de Postman directamente desde la terminal, sin necesidad de abrir la aplicación de escritorio. Su poder reside en la capacidad de integrar tus pruebas de API en sistemas automatizados.

El principal caso de uso de Newman es la Integración Continua / Despliegue Continuo (CI/CD). Al ejecutar Newman en un pipeline, puedes automatizar tus pruebas de API cada vez que se realiza un cambio en el código, asegurando que ninguna funcionalidad se haya roto antes de desplegar a producción.

2. Instalación de Newman

Newman es un paquete de Node.js, por lo que el primer requisito es tener Node.js y su gestor de paquetes (npm) instalados en tu sistema.

  1. Abre tu terminal o línea de comandos.
  2. Ejecuta el siguiente comando para instalar Newman de forma global, lo que te permitirá usarlo desde cualquier directorio:
npm install -g newman
  1. Una vez instalado, verifica que todo funciona correctamente ejecutando:
newman --version

Este comando debería devolverte el número de la versión de Newman que acabas de instalar.

3. Exportar la Colección y el Entorno

Para que Newman pueda ejecutar algo, primero necesitas darle los archivos de tu colección y, opcionalmente, del entorno que utiliza.

  1. Exportar la Colección: En Postman, haz clic en los tres puntos junto a tu colección y selecciona Export. Elige el formato "Collection v2.1" (recomendado) y guarda el archivo JSON en tu ordenador.
  2. Exportar una colección de Postman como archivo JSON
  3. Exportar el Entorno: Si tu colección usa un entorno, ve a la pestaña Environments, selecciona el entorno, haz clic en los tres puntos y elige Export. Guarda también este archivo JSON.
  4. Exportar un ambiente de Postman como archivo JSON

4. Ejecutar una Colección Básica

La ejecución más simple consiste en pasarle a Newman el archivo de la colección.

  1. Navega en tu terminal hasta el directorio donde guardaste el archivo JSON de tu colección.
  2. Ejecuta el siguiente comando, reemplazando el nombre del archivo por el tuyo:
newman run "MiColeccion.postman_collection.json"

Newman ejecutará cada petición de la colección en orden y mostrará una tabla resumen con los resultados de los tests para cada una.

Salida de una ejecución básica de Newman en la terminal

5. Usar Ambientes y Archivos de Datos

Para ejecutar una colección que depende de un ambiente o de un archivo de datos, puedes usar las banderas -e y -d respectivamente.

  • -e o --environment: Especifica el archivo de ambiente.
  • -d o --iteration-data: Especifica un archivo de datos (CSV o JSON) para ejecuciones data-driven.
# Ejecución con un ambiente
newman run MiColeccion.json -e MiEntorno.json

# Ejecución con ambiente y archivo de datos
newman run MiColeccion.json -e MiEntorno.json -d datos_de_prueba.csv

6. Generar Informes Avanzados con Reporters

Aunque la salida por defecto en la terminal es útil, Newman puede generar informes mucho más visuales y fáciles de compartir. Esto se logra a través de los "reporters".

Uno de los más populares es el reporter HTML, que genera un archivo HTML con un dashboard detallado de la ejecución. Primero, debes instalarlo:

npm install -g newman-reporter-html

Luego, para usarlo, añade la bandera -r o --reporters a tu comando de ejecución. Puedes combinar varios reporters (el `cli` por defecto y el `html`).

newman run MiColeccion.json -e MiEntorno.json -r cli,html

Este comando ejecutará la colección, mostrará la salida en la terminal y, además, creará una carpeta llamada newman con un archivo HTML dentro. Este archivo contiene un reporte interactivo con el resumen de toda la ejecución.

7. Integración en un Flujo de CI/CD (Ejemplo Conceptual)

El verdadero poder de Newman se desata en los pipelines de CI/CD. El proceso conceptual es el siguiente:

  1. Un desarrollador envía cambios al repositorio de código (ej: a GitHub).
  2. Esta acción dispara un pipeline en un servidor de CI/CD (ej: GitHub Actions).
  3. El pipeline tiene varios pasos: compilar el código, levantar la aplicación en un ambiente de pruebas y, finalmente, ejecutar las pruebas de API con Newman.
  4. El paso de Newman ejecuta el comando newman run .... Newman está diseñado para que, si algún test falla, el comando termine con un código de error.
  5. El servidor de CI/CD detecta este código de error y marca el "build" o la compilación como fallida, previniendo que el código con errores llegue a producción.

De esta forma, Newman actúa como un guardián automatizado de la calidad de tu API en cada cambio.