
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 test negativi per API REST. Esegui migliaia di test API auto-rigeneranti in pochi minuti senza sforzo di codifica!
- Completo: i test vengono generati automaticamente in base a un gran numero di scenari e coprono ogni campo e header
- Intelligente: i test vengono generati in base a tipi di dati e vincoli; ogni Fuzzer ha aspettative specifiche a seconda dello scenario testato
- Altamente configurabile: ampia possibilità di personalizzazione: puoi filtrare Fuzzer specifici, codici di risposta HTTP, metodi HTTP, percorsi delle richieste, fornire contesto aziendale e molto altro
- Auto-rigenerante: man mano che i test vengono generati, qualsiasi modifica alla specifica OpenAPI viene rilevata automaticamente
- Facile da imparare: curva di apprendimento piatta, con configurazione e sintassi intuitive
- Veloce: processo automatico per scrivere, eseguire e riportare i 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 minima, con una curva di apprendimento piatta, CATS (Contract API Testing and Security) ti permette di generare migliaia di test API in pochi minuti senza sforzo di codifica. Tutti i test vengono generati, eseguiti e riportati automaticamente sulla base di un set predefinito di 100+ Fuzzer. I Fuzzer coprono un'ampia gamma di test di confine e scenari negativi, da valori Unicode grandi completamente casuali a valori ben congegnati 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
Tutorial su come usare CATS
Questa è una lista di articoli con guide passo-passo su come usare CATS:
- Testare l'API di GitHub con CATS
- Come scrivere test funzionali auto-rigeneranti senza sforzo di codifica
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 è disponibile sia come JAR eseguibile che come binario nativo. I binari nativi non necessitano di Java installato.
Dopo aver scaricato il binario nativo del tuo sistema operativo, puoi aggiungerlo al PATH per eseguirlo 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 e facendo:
source cats_autocomplete
Per ottenere un autocompletamento persistente, aggiungi la riga sopra in .zshrc o .bashrc, ma assicurati di inserire il percorso completo per lo script cats_autocomplete.
Puoi anche controllare il sorgente di cats_autocomplete per una configurazione alternativa.
Non esiste un binario nativo per Windows, ma puoi usare la versione uberjar. Questo 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.
Compilare dai sorgenti
Puoi compilare CATS dai sorgenti sulla tua macchina locale. Hai bisogno di Java 25. Maven è già incluso.
Prima di eseguire la prima compilazione, assicurati di eseguire
./mvnw clean. CATS utilizza un fork di OKHttp che verrà installato localmente sotto la versione5.X.X-CATS, quindi non preoccuparti di sovrascrivere le versioni ufficiali.
Puoi usare il seguente comando Maven per compilare il progetto come uberjar:
./mvnw package -Dquarkus.package.type=uber-jar
Otterrai un cats-runner.jar nella cartella target. Puoi eseguirlo con java -jar cats-runner.jar ....
Puoi anche compilare immagini native usando una versione Java di GraalVM.
./mvnw package -Pnative
Note sui test unitari
Potresti vedere alcuni messaggi di log di error durante l'esecuzione dei test unitari. Questo è un comportamento previsto per testare gli scenari negativi dei Fuzzer.
Contribuire
Fai riferimento a CONTRIBUTING.md.