En resumen
Newman, el runner CLI oficial de Postman, requiere npm y Node.js en su pipeline de CI. Esto introduce riesgos en la cadena de suministro, añade sobrecarga en la gestión de dependencias y, en el nivel gratuito de Postman, las ejecuciones de colecciones a través de la API ahora tienen limitaciones de tasa. Esta guía cubre tres alternativas para ejecutar pruebas de API en CI sin Newman: el runner CLI de Apidog, k6 y Hurl. Apidog es la ruta más directa si tiene colecciones Postman existentes, ya que las importa de forma nativa y no tiene límites por ejecución.
💡 Apidog es una plataforma gratuita todo en uno para el desarrollo de API. Su runner CLI ejecuta colecciones compatibles con Postman en CI sin dependencia de npm y sin límites de conteo de ejecuciones. Pruebe Apidog gratis, no se requiere tarjeta de crédito.
Introducción
Newman fue una buena idea. Una herramienta CLI que ejecuta colecciones de Postman en pipelines de CI hizo que las pruebas de API fueran portátiles y automatizables. Se lanzó con la confianza de la marca Postman, se integró con GitHub Actions a través de una acción comunitaria popular y funcionó lo suficientemente bien como para que muchos equipos construyeran toda su estrategia de automatización de pruebas de API en torno a ella.
Luego surgieron tres problemas.
Primero, Newman es un paquete npm. Cada pipeline que lo utiliza descarga desde el registro npm en tiempo de compilación. La vulnerabilidad de ua-parser-js en 2021 y el incidente de node-ipc en 2022 demostraron que los ataques a la cadena de suministro de npm no son teóricos. Los equipos de seguridad comenzaron a preguntarse por qué la capa de pruebas de API necesitaba npm en absoluto.
Segundo, Postman comenzó a limitar las ejecuciones de colecciones en los niveles gratuitos y básicos de pago. Los equipos que dependían de la ejecución de colecciones a través de la API de Postman como parte de CI alcanzaron sus cuotas y tuvieron que actualizar sus planes o rediseñar sus pipelines.
Tercero, el ritmo de mantenimiento de Newman se ha ralentizado. Los problemas permanecen abiertos en GitHub durante meses. Algunas APIs de scripting de Postman más nuevas tienen un soporte inconsistente en Newman.
El resultado: los desarrolladores que construyeron pipelines de CI en Newman ahora buscan alternativas. Esto es lo que está disponible.
Opción 1: Apidog CLI (recomendado para usuarios de colecciones Postman)
El runner CLI de Apidog es el reemplazo funcional más cercano a Newman si ya tiene inversiones en colecciones Postman.
Qué soporta
- Formato de colección Postman v2 y v2.1
- Entornos Postman (exportación JSON)
-
pm.test,pm.expect,pm.environment.set,pm.collectionVariables.set - Scripts pre-solicitud y post-solicitud
- Pruebas basadas en datos a través de archivos de datos CSV y JSON
- Salida JUnit XML y JSON para informes de CI
No requiere npm. El CLI de Apidog se distribuye como un binario independiente. Lo descarga una vez, lo añade a su PATH y se ejecuta.
Sin límites por ejecución. Apidog no limita las ejecuciones de colecciones en ningún plan. Un pipeline que ejecuta 500 colecciones al día funciona igual que uno que ejecuta 5.
Instalación
Descargue el binario CLI para su plataforma desde apidog.com/cli o use el instalador de shell:
# macOS / Linux
curl -sSf https://apidog.com/cli/install.sh | sh
# Verificar
apidog --version
Para runners de CI basados en Docker, Apidog proporciona una imagen oficial:
FROM apidog/cli:latest
Ejecutar una colección Postman
- Exporte su colección desde Postman (Archivo > Exportar > Colección v2.1).
- Exporte su entorno (Administrar Entornos > Exportar).
Luego ejecute:
apidog run collection.json \
--environment environment.json \
--reporter-junit results.xml
Ejemplo de GitHub Actions
name: API Tests
on: [push, pull_request]
jobs:
api-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Apidog CLI
run: curl -sSf https://apidog.com/cli/install.sh | sh
- name: Run API tests
run: |
apidog run ./tests/collection.json \
--environment ./tests/env.json \
--reporter-junit test-results.xml
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: api-test-results
path: test-results.xml
Sin npm install, sin package.json, sin matriz de versiones de Node.js. El trabajo se ejecuta más rápido y la superficie de dependencia es menor.
Ejemplo de GitLab CI
api-tests:
image: apidog/cli:latest
script:
- apidog run ./tests/collection.json
--environment ./tests/env.json
--reporter-junit test-results.xml
artifacts:
reports:
junit: test-results.xml
Opción 2: k6
k6 es una herramienta de pruebas de carga de Grafana Labs que también maneja pruebas funcionales de API. Vale la pena conocerla porque es realmente excelente para pruebas de rendimiento junto con comprobaciones funcionales.
Qué soporta
- HTTP/1.1, HTTP/2, WebSocket, gRPC
- Scripts de prueba JavaScript (ES6+)
- Umbrales para aserciones de rendimiento
- Salida a InfluxDB, Prometheus, Datadog
Qué no soporta
- Formato de colección Postman nativo. Puede convertir colecciones Postman a scripts k6 usando el convertidor
postman-to-k6, pero la salida a menudo necesita limpieza manual, especialmente para scripts complejos. - La API
pm.*de Postman de forma nativa. La capa de conversión la emula pero con lagunas.
Cuándo elegir k6
Si necesita combinar pruebas funcionales con pruebas de rendimiento en el mismo pipeline, por ejemplo, verificando la corrección de la API bajo carga, k6 vale el costo de la migración. Si solo desea reemplazar Newman para pruebas funcionales, Apidog es más rápido de configurar.
Uso básico de k6 en CI
# Instalar (Linux)
sudo apt-get install k6
# Ejecutar un script de prueba
k6 run api-tests.js
Las salidas de k6 CI pasan/fallan según las definiciones de umbrales en su script. La salida JUnit XML está disponible a través del paquete k6-reporter.
Opción 3: Hurl
Hurl es una herramienta de prueba HTTP de código abierto escrita en Rust. Es rápida, no tiene dependencias de tiempo de ejecución y utiliza un DSL de texto plano para definir solicitudes y aserciones.
Qué soporta
- HTTP/1.1 y HTTP/2
- Aserciones JSON, XPath y regex
- Variables y encadenamiento de solicitudes
- Salida HTML, JUnit y JSON
Qué no soporta
- Formato de colección Postman. Hurl utiliza su propio formato de archivo
.hurl. No hay un convertidor automatizado. - Scripts de prueba JavaScript. Las aserciones son declarativas, no programáticas.
Cuándo elegir Hurl
Si está dispuesto a reescribir sus pruebas en el DSL de Hurl, obtendrá un binario notablemente pequeño sin tiempo de ejecución. El binario es un único archivo de 10 MB. Hurl es una opción sólida para nuevos proyectos en los que no arrastra la deuda de colecciones Postman.
Ejemplo básico de prueba con Hurl
GET https://api.example.com/users/1
HTTP 200
[Asserts]
jsonpath "$.id" == 1
jsonpath "$.email" isString
Hurl en GitHub Actions
- name: Install Hurl
run: |
curl -LO https://github.com/Orange-OpenSource/hurl/releases/latest/download/hurl-x86_64-unknown-linux-gnu.tar.gz
tar -xf hurl-*.tar.gz
sudo mv hurl /usr/local/bin/
- name: Run API tests
run: hurl --test tests/*.hurl
Comparación de las tres opciones
| Característica | Apidog CLI | k6 | Hurl |
|---|---|---|---|
| Importación de Postman | Nativa | Convertidor (con pérdida) | No |
| Dependencia de npm | No | No | No |
| Scripting en JavaScript | Sí (API pm.*) | Sí (ES6) | No (solo DSL) |
| Pruebas de rendimiento | No | Sí | No |
| Tamaño del binario | ~50 MB | ~30 MB | ~10 MB |
| Límites de ejecución gratuitos | Ninguno | Ninguno | Ninguno |
| Salida JUnit | Sí | Mediante plugin | Sí |
Migración desde Newman: pasos prácticos
Si tiene un pipeline existente basado en Newman, aquí tiene la ruta de migración a Apidog CLI:
1. Exporte sus colecciones.
En Postman, haga clic derecho en cada colección y expórtela como v2.1. Exporte sus entornos por separado.
2. Instale Apidog CLI.
Añada el paso de instalación a su configuración de CI.
3. Reemplace el comando Newman.
Un comando Newman típico se ve así:
newman run collection.json -e environment.json --reporters junit --reporter-junit-export results.xml
El equivalente de Apidog:
apidog run collection.json --environment environment.json --reporter-junit results.xml
La estructura de las banderas es similar por diseño.
4. Verifique la compatibilidad del script.
Ejecute su colección localmente con Apidog CLI antes de confirmar el cambio en CI. La mayoría de los scripts pm.* se ejecutan sin modificaciones. Los scripts que usan pm.require para cargar módulos externos necesitan ajustes.
5. Elimine Node.js de su configuración de CI.
Si Newman era la única razón por la que Node.js aparecía en su pipeline, puede eliminar el paso de configuración de Node.js y el paso de npm install por completo.
Preguntas Frecuentes
¿Newman está oficialmente obsoleto?
No, a principios de 2026 Newman sigue siendo mantenido por Postman. Pero el ritmo de mantenimiento es lento y varios problemas abiertos afectan casos de uso del mundo real. No desaparecerá pronto, pero construir nuevos pipelines sobre él conlleva un riesgo creciente.
¿Apidog CLI requiere una cuenta Apidog?
Para ejecutar colecciones exportadas localmente, no. Para sincronizar colecciones desde un espacio de trabajo de Apidog, sí. Si está migrando desde Postman, puede ejecutar puramente desde archivos JSON exportados.
¿Puede Apidog CLI ejecutar pruebas basadas en datos?
Sí. Pase un archivo de datos CSV o JSON con la bandera --iteration-data. Esto es equivalente a la bandera -d de Newman para iteraciones basadas en datos.
¿Cuál es el riesgo de la cadena de suministro con los runners basados en npm?
Cualquier paquete descargado de npm en tiempo de CI es una superficie de ataque potencial. Los paquetes comprometidos pueden exfiltrar variables de entorno, lo que en un contexto de CI incluye claves y tokens de API. Un runner binario descargado a través de HTTPS y fijado a una suma de verificación evita esta clase de riesgo.
¿k6 soporta pruebas gRPC?
Sí. k6 tiene soporte gRPC nativo, lo que lo convierte en una de las pocas herramientas de código abierto que maneja tanto REST como gRPC en la misma suite de pruebas. Si su superficie de API incluye puntos finales gRPC, k6 vale la pena evaluarlo.
¿Hurl soporta cabeceras de autenticación?
Sí. Hurl soporta cabeceras personalizadas, incluyendo Authorization, Bearer y autenticación basada en cookies. Las variables le permiten inyectar secretos desde variables de entorno en tiempo de ejecución.
La era de Newman como la elección predeterminada de CI para pruebas de API está terminando. Los riesgos de la cadena de suministro son reales, los límites del nivel gratuito han cambiado la ecuación para muchos equipos, y ahora existen mejores alternativas. La migración a un pipeline sin Newman es sencilla, especialmente si se está moviendo a Apidog CLI con sus colecciones Postman existentes.
Top comments (0)