
Outil automatisé de fuzzing et de tests négatifs d'API REST pour les endpoints OpenAPI. Génère, exécute et rapporte des milliers de tests auto-réparateurs sans effort de codage, couvrant les scénarios de limites et de sécurité.
La documentation de CATS est disponible sur https://endava.github.io/cats/
Outil de fuzzing et de tests négatifs pour API REST. Exécutez des milliers de tests d'API auto-réparateurs en quelques minutes sans aucun effort de codage !
Peu de temps ? Consultez le Guide de démarrage rapide en 1 minute !
En utilisant une syntaxe simple et minimale, avec une courbe d'apprentissage douce, CATS (Contract API Testing and Security) vous permet de générer des milliers de tests d'API en quelques minutes avec aucun effort de codage. Tous les tests sont générés, exécutés et rapportés automatiquement à partir d'un ensemble prédéfini de plus de 100 Fuzzers. Les Fuzzers couvrent un large éventail de tests aux limites et de scénarios négatifs, allant de valeurs Unicode volumineuses entièrement aléatoires à des valeurs bien conçues et dépendantes du contexte, basées sur les types de données et les contraintes de la requête. Qui plus est, vous pouvez tirer parti du fait que CATS génère dynamiquement les charges utiles des requêtes et écrire de simples tests fonctionnels de bout en bout.
Utilisez --tui sur une commande de fuzzing normale pour suivre l'exécution et inspecter les résultats sans quitter le terminal :
cats --contract openapi.yml --server http://localhost:8080 --tui
La vue d'ensemble affiche les Paths, la configuration d'exécution, le temps de réponse, les codes de réponse HTTP, les succès/avertissements/erreurs, et les Fuzzers exécutés en utilisant la même terminologie que la CLI et le rapport HTML. Le tableau des fuzzers utilise toutes les lignes disponibles du terminal ; utilisez j/k ou Page Up/Page Down pour le parcourir lorsque la liste complète ne tient pas à l'écran. Appuyez sur 2 pour les détails d'exécution, 3 pour le résumé d'exécution et le résultat du quality gate, 4 pour les détails d'exécution par motif de résultat, 5 pour les Paths inclus, ou 6 pour les tests exécutés triés par temps de réponse. Les lignes Motif de résultat et Path ouvrent leurs tests correspondants avec Entrée.
Utilisez les touches fléchées ou j/k pour sélectionner un test, et appuyez sur Entrée pour inspecter sa requête, sa réponse, son résultat, sa trace et sa commande de replay dans une vue détaillée plein écran. Appuyez sur / dans la liste des tests pour rechercher les identifiants de test, les fuzzers, les paths, les scénarios, les motifs de résultat, les méthodes, les résultats et les codes de réponse. a, e, w, s et i filtrent respectivement tous les résultats, les erreurs, les avertissements, les succès et les tests ignorés. Échap efface d'abord une recherche active et, sinon, revient à l'écran précédent ; 1 ouvre la vue d'ensemble.
Appuyez sur q pour quitter l'interface. Pendant une exécution active, cela demande une annulation, termine le test en cours lorsque c'est possible, préserve les résultats déjà écrits et se termine avec le statut 130. Une fois l'exécution terminée, q quitte normalement.
La TUI nécessite un terminal interactif d'au moins 80 colonnes sur 24 lignes et ne peut pas être combinée avec --dryRun. Elle est disponible pour les commandes de fuzzing basées sur OpenAPI ; la commande autonome template continue d'utiliser la sortie CLI normale. La TUI conserve par défaut les 10 000 derniers détails de test ; utilisez --tuiMaxResults pour choisir une autre limite positive. Les statistiques agrégées continuent de couvrir l'exécution complète lorsque des détails plus anciens sont écartés.
Voici une liste d'articles avec des guides pas à pas sur l'utilisation de CATS :
> brew tap endava/tap
> brew install cats
CATS est fourni à la fois sous forme de JAR exécutable ou de binaire natif. Les binaires natifs ne nécessitent pas l'installation de Java.
Après avoir téléchargé le binaire natif de votre OS, vous pouvez l'ajouter au PATH afin de pouvoir l'exécuter comme n'importe quel autre outil en ligne de commande :
sudo cp cats /usr/local/bin/cats
Vous pouvez également obtenir l'autocomplétion en téléchargeant le script cats_autocomplete et en exécutant :
source cats_autocomplete