
Herramienta automatizada de fuzzing de API REST y pruebas negativas para endpoints OpenAPI. Genera, ejecuta y reporta miles de pruebas autocorrectivas sin esfuerzo de codificación, cubriendo escenarios de límites y seguridad.
La documentación de CATS está disponible en https://endava.github.io/cats/
Herramienta de fuzzing y pruebas negativas para API REST. ¡Ejecuta miles de pruebas de API auto-reparables en minutos sin esfuerzo de codificación!
¿Tienes poco tiempo? ¡Consulta la Guía de inicio rápido de 1 minuto!
Mediante el uso de una sintaxis simple y mínima, con una curva de aprendizaje plana, CATS (Contract API Testing and Security) te permite generar miles de pruebas de API en minutos con ningún esfuerzo de codificación. Todas las pruebas se generan, ejecutan y reportan automáticamente basándose en un conjunto predefinido de más de 100 Fuzzers. Los Fuzzers cubren una amplia gama de pruebas de límites y escenarios negativos, desde valores Unicode grandes completamente aleatorios hasta valores bien elaborados y dependientes del contexto basados en los tipos de datos y restricciones de la solicitud. Aún más, puedes aprovechar el hecho de que CATS genera payloads de solicitud dinámicamente y escribir pruebas funcionales de extremo a extremo simples.
Usa --tui en un comando de fuzzing normal para seguir la ejecución e inspeccionar los resultados sin salir de la terminal:
cats --contract openapi.yml --server http://localhost:8080 --tui
La vista general muestra Rutas, Configuración de ejecución, Tiempo de respuesta, Códigos de respuesta HTTP, Éxitos/Advertencias/Errores y Fuzzers ejecutados usando la misma terminología que la CLI y el informe HTML. La tabla de fuzzers usa todas las filas de terminal disponibles; usa j/k o Page Up/Page Down para navegar por ella cuando la lista completa no quepa. Pulsa 2 para Detalles de ejecución, 3 para el resumen de ejecución y el resultado del Quality gate, 4 para Detalles de ejecución por motivo del resultado, 5 para Rutas incluidas, o 6 para pruebas ejecutadas ordenadas por Tiempo de respuesta. Las filas de Motivo del resultado y Ruta abren sus pruebas correspondientes con Enter.
Usa las teclas de flecha o j/k para seleccionar una prueba, y pulsa Enter para inspeccionar su solicitud, respuesta, resultado, traza y comando de reproducción en una vista de detalle a pantalla completa. Pulsa / en la lista de pruebas para buscar IDs de prueba, fuzzers, rutas, escenarios, motivos de resultado, métodos, resultados y códigos de respuesta. a, e, w, s e i filtran todos, error, advertencia, exitosos y omitidos. Esc primero borra una búsqueda activa y, en caso contrario, vuelve a la pantalla anterior; 1 abre la vista general.
Pulsa q para salir de la interfaz. Durante una ejecución activa, esto solicita la cancelación, finaliza la prueba actual cuando es posible, conserva los resultados ya escritos y sale con el estado 130. Una vez finalizada la ejecución, q sale normalmente.
La TUI requiere una terminal interactiva de al menos 80 columnas por 24 filas y no se puede combinar con --dryRun. Está disponible para comandos de fuzzing respaldados por OpenAPI; el comando independiente template continúa usando la salida normal de la CLI. La TUI conserva los 10.000 detalles de prueba más recientes de forma predeterminada; usa --tuiMaxResults para elegir un límite positivo diferente. Las estadísticas agregadas siguen cubriendo la ejecución completa cuando se descartan detalles más antiguos.
Esta es una lista de artículos con guías paso a paso sobre cómo usar CATS:
> brew tap endava/tap
> brew install cats
CATS se distribuye tanto como un JAR ejecutable como un binario nativo. Los binarios nativos no necesitan Java instalado.
Después de descargar el binario nativo de tu sistema operativo, puedes añadirlo al PATH para poder ejecutarlo como cualquier otra herramienta de línea de comandos:
sudo cp cats /usr/local/bin/cats
También puedes obtener autocompletado descargando el script cats_autocomplete y hacer:
source cats_autocomplete
Para obtener autocompletado persistente, añade la línea anterior en .zshrc o .bashrc, pero asegúrate de poner la ruta completa para el script cats_autocomplete.
También puedes consultar el código fuente de cats_autocomplete para una configuración alternativa.
No hay binario nativo para Windows, pero puedes usar la versión uberjar. Esto requiere que Java 25+ esté instalado.