Qué es Newman y cómo usarlo con Postman: guía práctica para QA

Cuando aprendes Postman, llega un momento en que te preguntas cómo ejecutar tus tests de API de forma automática sin tener que abrir la aplicación manualmente cada vez. La respuesta es Newman — la herramienta de línea de comandos de Postman que convierte tus colecciones en tests automatizados que puedes integrar en cualquier pipeline de CI/CD.


Qué es Newman

Newman es la herramienta de línea de comandos oficial de Postman. Permite ejecutar colecciones de Postman directamente desde la terminal, sin necesidad de abrir la interfaz gráfica de Postman.

Es exactamente lo que necesitas para integrar tus tests de API en un pipeline de CI/CD — cada vez que hay un push al repositorio, Newman ejecuta automáticamente tu colección y reporta si algo ha fallado.

Si todavía no conoces Postman puedes leer primero Postman para principiantes: qué es y cómo hacer tu primera prueba de API.


Por qué Newman es importante para un QA Engineer

Sin Newman, los tests de Postman solo se pueden ejecutar manualmente desde la interfaz gráfica. Eso significa que alguien tiene que acordarse de abrirlos y ejecutarlos antes de cada despliegue — algo que en la práctica no siempre ocurre.

Con Newman, los tests se ejecutan automáticamente en cada push al repositorio, en cada pull request o antes de cada despliegue. El equipo recibe feedback inmediato sobre el estado de las APIs sin intervención manual.


Instalar Newman

Newman está construido sobre Node.js así que necesitas tenerlo instalado primero. Descárgalo desde nodejs.org si no lo tienes.

Una vez instalado Node.js, instala Newman globalmente con:

bash

npm install -g newman

Verifica que la instalación fue correcta:

bash

newman --version

Exportar tu colección de Postman

Antes de ejecutar tu colección con Newman necesitas exportarla como archivo JSON desde Postman.

En Postman haz clic en los tres puntos junto al nombre de tu colección, selecciona Export y guarda el archivo JSON en tu proyecto. Por ejemplo como coleccion-api.json.


Ejecutar la colección con Newman

Con la colección exportada, ejecutarla es tan simple como:

bash

newman run coleccion-api.json

Newman ejecutará todas las requests de la colección en orden y mostrará en la terminal un resumen con el número de requests ejecutadas, tests pasados y tests fallados.


Usar variables de entorno

Si tu colección usa variables de entorno — URLs, tokens, credenciales — necesitas exportar también el entorno desde Postman y pasárselo a Newman con el flag -e:

bash

newman run coleccion-api.json -e entorno-staging.json

Esto es especialmente útil cuando tienes diferentes entornos — desarrollo, staging, producción — con diferentes URLs y credenciales.


Generar reportes HTML

Por defecto Newman muestra los resultados en la terminal. Para generar un reporte HTML más visual instala el reporter adicional:

bash

npm install -g newman-reporter-htmlextra

Y ejecuta Newman con el reporter:

bash

newman run coleccion-api.json -e entorno.json -r htmlextra --reporter-htmlextra-export reporte.html

Esto genera un archivo reporte.html que puedes abrir en el navegador y compartir con el equipo o adjuntar como evidencia de testing.


Integrar Newman en GitHub Actions

Aquí es donde Newman se vuelve realmente potente. Con GitHub Actions puedes configurar que tus tests de API se ejecuten automáticamente en cada push al repositorio.

Crea el archivo .github/workflows/api-tests.yml:

yaml

name: API Tests con Newman

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  api-tests:
    runs-on: ubuntu-latest
    
    steps:
      - uses: actions/checkout@v3
      
      - name: Instalar Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '18'
      
      - name: Instalar Newman
        run: |
          npm install -g newman
          npm install -g newman-reporter-htmlextra
      
      - name: Ejecutar tests de API
        run: |
          newman run coleccion-api.json \
            -e entorno-staging.json \
            -r cli,htmlextra \
            --reporter-htmlextra-export reporte.html
      
      - name: Subir reporte
        uses: actions/upload-artifact@v3
        if: always()
        with:
          name: reporte-api
          path: reporte.html

Con esta configuración, cada push a main ejecuta automáticamente todos los tests de tu colección de Postman y sube el reporte HTML como artefacto descargable desde GitHub Actions.


Opciones útiles de Newman

Newman tiene muchas opciones para personalizar la ejecución. Estas son las más usadas:

--iteration-count N — ejecuta la colección N veces. Útil para pruebas de carga básicas.

--delay-request N — añade un delay de N milisegundos entre cada request. Útil cuando la API tiene rate limiting.

--timeout-request N — establece un timeout de N milisegundos por request.

--bail — detiene la ejecución en cuanto falla el primer test. Útil en CI/CD para fallar rápido.

bash

newman run coleccion-api.json \
  -e entorno.json \
  --iteration-count 3 \
  --delay-request 500 \
  --bail

Newman vs Collection Runner de Postman

La diferencia clave es el contexto de uso. El Collection Runner de Postman es perfecto para ejecutar tests manualmente durante el desarrollo — tienes una interfaz visual, puedes ver cada request en detalle y es fácil de usar.

Newman es para automatización — pipelines de CI/CD, ejecución programada, integración con sistemas de reporting. No tiene interfaz visual pero es lo que necesitas cuando quieres que los tests se ejecuten solos.

En un flujo de trabajo profesional se usan los dos — Collection Runner para desarrollo y depuración, Newman para automatización en CI/CD.

Si quieres saber más sobre cómo integrar tests en CI/CD puedes leer GitHub Actions para QA: automatiza tus tests.

Y si necesitas ayuda para implementar una estrategia de API testing en tu proyecto puedes ver mis servicios en fatimaqa.com.

Scroll al inicio