Si quiere generar pruebas de API sin escribirlas manualmente, Keploy es una opción práctica: observa el tráfico real de su aplicación, captura solicitudes, respuestas y dependencias, y las convierte en pruebas reproducibles. En esta guía verá cómo funciona, cómo instalarlo, cómo grabar y reproducir pruebas, cómo llevarlo a CI y cuándo conviene compararlo con una plataforma como Apidog.
¿Qué es Keploy?
Keploy es una plataforma de código abierto bajo licencia Apache-2.0 para generar pruebas de API, integración y extremo a extremo a partir del comportamiento real de una aplicación.
La idea es simple: si su aplicación ya recibe tráfico que representa casos reales, Keploy puede observar ese tráfico y convertirlo en pruebas ejecutables.
Keploy ofrece dos flujos principales:
- Grabación y reproducción: captura llamadas reales de API y sus dependencias, y luego las reproduce como pruebas de regresión.
- Generación de pruebas con IA: crea suites de pruebas a partir de una especificación, colección, comando cURL o endpoint en vivo.
El resultado son pruebas ejecutables junto con mocks/stubs para ejecutar esas pruebas sin depender de servicios externos en vivo.
Repositorio: github.com/keploy/keploy
Documentación: keploy.io/docs
Cómo funciona la grabación de Keploy con eBPF
Keploy se diferencia porque no requiere SDK ni cambios en el código de la aplicación.
Cuando ejecuta:
keploy record -c "CMD_TO_RUN_APP"
Keploy observa el tráfico en la capa de red usando eBPF, una tecnología del kernel de Linux que permite inspeccionar eventos del sistema de forma segura.
En la práctica, esto significa:
- Captura sin código: no necesita instrumentar handlers, middlewares ni clientes HTTP.
- Independencia del lenguaje: al capturar en red, funciona con servicios escritos en Go, Java, Node.js, Python, Rust, etc.
- Captura de dependencias: no solo registra la llamada entrante a la API, también las llamadas salientes a bases de datos, colas o servicios externos.
Por cada interacción observada, Keploy genera dos tipos de artefactos:
- Un caso de prueba con la solicitud y la respuesta esperada.
- Mocks/stubs de las dependencias utilizadas durante esa solicitud.
Luego, durante la reproducción, Keploy vuelve a enviar las solicitudes grabadas, sirve las respuestas de dependencias desde los mocks y compara la nueva respuesta de su aplicación con la respuesta original.
Si hay diferencias, la prueba falla.
Flujo 1: grabar y reproducir pruebas
Use este flujo cuando ya tenga una aplicación en ejecución y quiera cobertura de regresión rápidamente.
1. Inicie su aplicación con Keploy
Por ejemplo, para una app Node.js:
keploy record -c "node server.js"
Keploy arrancará la aplicación y quedará escuchando el tráfico.
2. Ejercite la API
Puede generar tráfico de varias formas:
curl http://localhost:3000/users
curl -X POST http://localhost:3000/users \
-H "Content-Type: application/json" \
-d '{"name":"Ana"}'
También puede usar Postman, una prueba de integración existente o tráfico real controlado.
3. Reproduzca las pruebas
Después de grabar, ejecute:
keploy test -c "node server.js" --delay 10
La opción --delay 10 le dice a Keploy que espere 10 segundos antes de enviar las solicitudes grabadas. Esto da tiempo a que el servicio termine de iniciar.
Si su aplicación tarda más:
keploy test -c "node server.js" --delay 30
Flujo 2: generación de pruebas con IA
Use este flujo cuando quiera ampliar la cobertura más allá de los casos que grabó manualmente.
Keploy puede generar suites de prueba a partir de:
- Una especificación OpenAPI.
- Una colección Postman.
- Un comando cURL.
- Un endpoint en vivo.
Este flujo es útil cuando parte de un contrato de API y quiere generar casos iniciales sin escribirlos desde cero.
La generación con IA complementa la grabación:
- Grabación y reproducción: valida comportamiento real observado.
- Generación con IA: ayuda a cubrir rutas, entradas y escenarios adicionales definidos por contrato.
Si está evaluando herramientas de este tipo, también puede revisar esta guía de generadores de casos de prueba con IA y esta guía para generar scripts de prueba desde OpenAPI.
Instalación de Keploy
En un sistema compatible, instale Keploy con:
curl --silent -O -L https://keploy.io/install.sh && source install.sh
Después de la instalación, verifique que el comando esté disponible:
keploy --version
Comandos principales
Keploy se usa principalmente con dos comandos.
Grabar tráfico
keploy record -c "CMD_TO_RUN_APP"
Ejemplo:
keploy record -c "node server.js"
Reproducir pruebas
keploy test -c "CMD_TO_RUN_APP" --delay 10
Ejemplo:
keploy test -c "node server.js" --delay 10
Un ciclo completo sería:
# 1. Grabar mientras llama a la API
keploy record -c "node server.js"
# 2. Reproducir lo capturado como pruebas de regresión
keploy test -c "node server.js" --delay 10
La práctica recomendada es grabar contra una versión conocida como estable y luego ejecutar keploy test en cada cambio.
Lenguajes, protocolos y almacenes compatibles
Como la captura ocurre en la capa de red, Keploy cubre una superficie amplia.
| Categoría | Soportado |
|---|---|
| Lenguajes | Go, Java, Node.js, Python, Rust, C#, C/C++, TypeScript y más |
| Protocolos | HTTP/REST, gRPC, GraphQL, Kafka, RabbitMQ |
| Almacenes de datos | PostgreSQL, MySQL, MongoDB, Redis |
Esta compatibilidad viene del enfoque basado en eBPF: Keploy observa conversaciones de red, no detalles internos del framework.
Ejecutar Keploy en CI
Keploy encaja bien en pipelines de CI porque las pruebas grabadas y los mocks pueden versionarse junto con el código.
Un flujo típico sería:
- Grabar pruebas localmente o en un entorno controlado.
- Confirmar los artefactos generados en el repositorio.
- Ejecutar
keploy testen CI. - Fallar la build si hay desviaciones.
Ejemplo conceptual:
steps:
- name: Install Keploy
run: curl --silent -O -L https://keploy.io/install.sh && source install.sh
- name: Run Keploy tests
run: keploy test -c "node server.js" --delay 10
Como Keploy reproduce dependencias desde mocks, el runner de CI no necesita necesariamente una base de datos o servicio descendente en vivo para ejecutar esos casos.
Limitaciones a considerar
Keploy es útil, pero no sustituye todas las capas de testing ni todo el ciclo de vida de una API.
Tenga en cuenta estas limitaciones:
- Depende del entorno Linux y de permisos elevados: eBPF es una capacidad del kernel de Linux, y la captura a ese nivel suele requerir permisos específicos.
- Las pruebas generadas deben revisarse: el tráfico real puede incluir ruido, datos temporales o comportamientos que no quiere convertir en contrato.
- No es una plataforma completa de ciclo de vida de API: Keploy se centra en capturar, generar y reproducir pruebas. No cubre diseño de API, documentación colaborativa, publicación de mocks para consumidores o gestión completa de especificaciones.
La forma práctica de adoptarlo es usarlo como generador de cobertura inicial y luego curar qué pruebas deben mantenerse como regresión.
Dónde encaja Apidog como alternativa diseñada para pruebas mantenibles
Si su necesidad va más allá de convertir tráfico observado en pruebas de regresión, puede considerar una plataforma de ciclo de vida completo como Apidog.
Apidog cubre diseño, depuración, simulación, documentación y pruebas de API en un solo lugar.
La diferencia principal es el enfoque:
- Keploy captura comportamiento real en ejecución y lo reproduce con mocks de dependencias.
- Apidog permite diseñar, mantener y ejecutar escenarios de prueba dentro de una plataforma API completa.
Con la CLI de Apidog, puede ejecutar colecciones desde terminal o CI, usar pruebas basadas en datos con CSV o JSON, cambiar entornos y generar reportes CLI, HTML y JSON.
Apidog también ofrece generación de casos de prueba con IA a partir del esquema y los endpoints de API.
El límite es claro: Apidog no captura tráfico en vivo mediante eBPF ni genera automáticamente pruebas desde llamadas de producción con mocks de dependencias. Esa es una capacidad propia de Keploy.
Elija según el objetivo:
- Use Keploy si quiere capturar tráfico real y convertirlo rápidamente en pruebas de regresión.
- Use Apidog si quiere pruebas diseñadas, mantenibles y conectadas con documentación, mocks, depuración y colaboración de API.
Para profundizar, consulte Apidog vs Keploy. Si quiere migrar pruebas, revise este tutorial de migración.
También puede descargar Apidog y empezar con esta guía para probar una API con Apidog.
Preguntas frecuentes
¿Keploy es gratuito y de código abierto?
Sí. Keploy es de código abierto bajo licencia Apache-2.0. El código está disponible en GitHub y puede autoalojarlo.
¿Keploy requiere cambiar el código de mi aplicación?
No. El flujo de grabación y reproducción captura tráfico en la capa de red con eBPF, por lo que no necesita SDK ni cambios de código.
¿Para qué sirve --delay en keploy test?
Define cuántos segundos espera Keploy antes de enviar las solicitudes grabadas. Por ejemplo:
keploy test -c "node server.js" --delay 10
Esto espera 10 segundos para que la aplicación termine de iniciar.
¿Keploy puede simular mi base de datos durante las pruebas?
Sí. Durante la grabación, Keploy captura llamadas de dependencia, incluidas consultas a base de datos, y genera mocks para reproducirlas sin una base de datos en vivo.
¿Keploy reemplaza una herramienta de diseño y documentación de API?
No. Keploy es una herramienta de generación y ejecución de pruebas. Para diseño de API, documentación, mocks para consumidores, colaboración y pruebas mantenibles, una plataforma de ciclo de vida completo como Apidog encaja mejor.
Resumen
Keploy convierte tráfico real de API en pruebas reproducibles. Usa eBPF para capturar solicitudes, respuestas y dependencias en la capa de red sin modificar el código. Luego reproduce esas interacciones como pruebas de regresión deterministas.
Es una buena opción si quiere generar cobertura rápidamente desde comportamiento real. Sus principales límites son el entorno Linux/eBPF, la necesidad de revisar las pruebas generadas y su alcance centrado en testing.
Si necesita una plataforma más amplia para diseñar, documentar, simular, depurar y probar APIs, Apidog es la alternativa natural para comparar.


Top comments (0)