
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/
Fuzzer de API REST y herramienta de pruebas negativas. ¡Ejecuta miles de pruebas de API auto-reparables en minutos sin necesidad de escribir código!
¿Poco tiempo? Consulta la Guía de inicio rápido de 1 minuto
Usando 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 sin 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 elaborados y dependientes del contexto basados en los tipos de datos y restricciones de la solicitud. Incluso más, puedes aprovechar que CATS genera cargas útiles de solicitud dinámicamente y escribir pruebas funcionales simples de extremo a extremo.
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 agregarlo a 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 haciendo:
source cats_autocomplete
Para obtener autocompletado persistente, agrega la línea anterior en .zshrc o .bashrc, pero asegúrate de poner la ruta completa del script cats_autocomplete.
También puedes consultar la fuente de cats_autocomplete para una configuración alternativa.
No hay un binario nativo para Windows, pero puedes usar la versión uberjar. Esto requiere tener instalado Java 25+.
Puedes ejecutarlo como java -jar cats.jar.
Dirígete a la página de lanzamientos para descargar la última versión: https://github.com/Endava/cats/releases.
Puedes compilar CATS desde las fuentes en tu máquina local. Necesitas Java 25. Maven ya está incluido.
Antes de ejecutar la primera compilación, asegúrate de hacer un
./mvnw clean. CATS usa un fork de OKHttp que se instalará localmente bajo la versión5.X.X-CATS, así que no te preocupes por sobrescribir las versiones oficiales.
Puedes usar el siguiente comando de Maven para compilar el proyecto como un uberjar:
./mvnw package -Dquarkus.package.type=uber-jar
Obtendrás un cats-runner.jar en la carpeta target. Puedes ejecutarlo con java -jar cats-runner.jar ....
También puedes compilar imágenes nativas usando una versión de Java de GraalVM.
./mvnw package -Pnative
Puedes ver algunos mensajes de log de error mientras ejecutas las pruebas unitarias. Ese comportamiento es esperado para probar los escenarios negativos de los Fuzzers.
Consulta CONTRIBUTING.md.