
cats cats-14.0.0
Fuzzer automatizzato per API REST e strumento di test negativi per endpoint OpenAPI. Genera, esegue e riporta migliaia di test auto-riparanti senza sforzo di codifica, coprendo scenari di confine e di sicurezza.
La documentazione di CATS è disponibile su https://endava.github.io/cats/
Strumento di fuzzing e negative testing per REST API. Esegui migliaia di test API self-healing in pochi minuti senza alcuno sforzo di programmazione!
- Completo: i test vengono generati automaticamente sulla base di un ampio numero di scenari e coprono ogni campo e header
- Intelligente: i test vengono generati in base ai tipi di dati e ai vincoli; ogni Fuzzer ha aspettative specifiche a seconda dello scenario in esame
- Altamente configurabile: elevato grado di personalizzazione: puoi filtrare Fuzzer specifici, codici di risposta HTTP, metodi HTTP, percorsi delle richieste, fornire contesto di business e molto altro
- Self-Healing: poiché i test vengono generati, qualsiasi modifica alla specifica OpenAPI viene rilevata automaticamente
- Semplice da imparare: curva di apprendimento piatta, con configurazione e sintassi intuitive
- Veloce: processo automatico per scrivere, eseguire e riportare test che copre migliaia di scenari in pochi minuti
Hai poco tempo? Dai un'occhiata alla Guida rapida di 1 minuto!
Panoramica
Utilizzando una sintassi semplice e minimale, con una curva di apprendimento piatta, CATS (Contract API Testing and Security) ti consente di generare migliaia di test API in pochi minuti con nessuno sforzo di programmazione. Tutti i test vengono generati, eseguiti e riportati automaticamente sulla base di un set predefinito di oltre 100 Fuzzer. I Fuzzer coprono un'ampia gamma di scenari di boundary testing e negativi, da valori Unicode grandi completamente casuali a valori ben costruiti e dipendenti dal contesto, basati sui tipi di dati e sui vincoli della richiesta. Inoltre, puoi sfruttare il fatto che CATS genera dinamicamente i payload delle richieste e scrivere semplici test funzionali end-to-end.
Report HTML
Riga di comando
Interfaccia terminale
Usa --tui su un normale comando di fuzzing per seguire l'esecuzione e ispezionare i risultati senza lasciare il terminale:
cats --contract openapi.yml --server http://localhost:8080 --tui
La panoramica mostra Paths, configurazione di esecuzione, tempo di risposta, codici di risposta HTTP, Successi/Avvisi/Errori e Fuzzer eseguiti usando la stessa terminologia della CLI e del report HTML. La tabella dei fuzzer utilizza tutte le righe disponibili del terminale; usa j/k o Page Up/Page Down per scorrerla quando l'elenco completo non entra. Premi 2 per i Dettagli di esecuzione, 3 per il riepilogo dell'esecuzione e il risultato del Quality gate, 4 per i Dettagli di esecuzione per Result Reason, 5 per i Paths inclusi, oppure 6 per i test eseguiti ordinati per tempo di risposta. Le righe Result Reason e Path aprono i test corrispondenti con Invio.
Usa i tasti freccia o j/k per selezionare un test, e premi Invio per ispezionare richiesta, risposta, risultato, trace e comando di replay in una vista di dettaglio a schermo intero. Premi / nell'elenco dei test per cercare ID dei test, fuzzer, paths, scenari, result reasons, metodi, risultati e codici di risposta. a, e, w, s e i filtrano tutti, errori, avvisi, risultati riusciti e saltati. Esc prima cancella una ricerca attiva e altrimenti torna alla schermata precedente; 1 apre la panoramica.
Premi q per uscire dall'interfaccia. Durante un'esecuzione attiva questo richiede la cancellazione, termina il test corrente dove possibile, preserva i risultati già scritti ed esce con stato 130. Dopo che l'esecuzione è terminata, q esce normalmente.
La TUI richiede un terminale interattivo di almeno 80 colonne per 24 righe e non può essere combinata con --dryRun. È disponibile per i comandi di fuzzing basati su OpenAPI; il comando standalone template continua a usare il normale output della CLI. La TUI conserva per impostazione predefinita gli ultimi 10.000 dettagli dei test; usa --tuiMaxResults per scegliere un limite positivo diverso. Le statistiche aggregate continuano a coprire l'intera esecuzione quando i dettagli più vecchi vengono scartati.
Tutorial su come usare CATS
Questa è una lista di articoli con guide passo-passo su come usare CATS:
Alcuni bug trovati da CATS
- https://github.com/hashicorp/vault/issues/13274 | https://github.com/hashicorp/vault/issues/13273
- https://github.com/hashicorp/vault/issues/13225 | https://github.com/hashicorp/vault/issues/13232
- https://github.com/go-gitea/gitea/issues/19397 | https://github.com/go-gitea/gitea/issues/19398
- https://github.com/go-gitea/gitea/issues/19399
Installazione
Homebrew
> brew tap endava/tap
> brew install cats
Manuale
CATS è distribuito sia come JAR eseguibile sia come binario nativo. I binari nativi non richiedono Java installato.
Dopo aver scaricato il binario nativo per il tuo sistema operativo, puoi aggiungerlo al PATH in modo da poterlo eseguire come qualsiasi altro strumento da riga di comando:
sudo cp cats /usr/local/bin/cats
Puoi anche ottenere l'autocompletamento scaricando lo script cats_autocomplete ed eseguendo:
source cats_autocomplete
Per ottenere l'autocompletamento persistente, aggiungi la riga sopra in .zshrc o .bashrc, ma assicurati di inserire il percorso completo dello script cats_autocomplete.
Puoi anche consultare il sorgente di cats_autocomplete per una configurazione alternativa.
Non esiste un binario nativo per Windows, ma puoi usare la versione uberjar. Questa richiede Java 25+ installato.
Puoi eseguirlo come java -jar cats.jar.
Vai alla pagina delle release per scaricare l'ultima versione: https://github.com/Endava/cats/releases.