
cats cats-14.0.0
Ferramenta automatizada de fuzzing de API REST e testes negativos para endpoints OpenAPI. Gera, executa e relata milhares de testes auto-recuperáveis sem esforço de codificação, cobrindo cenários de limite e segurança.
A documentação do CATS está disponível em https://endava.github.io/cats/
Ferramenta de fuzzing e testes negativos para APIs REST. Execute milhares de testes de API auto-recuperáveis em minutos, sem esforço de codificação!
- Abrangente: os testes são gerados automaticamente com base em um grande número de cenários e cobrem todos os campos e cabeçalhos
- Inteligente: os testes são gerados com base em tipos de dados e restrições; cada Fuzzer tem expectativas específicas dependendo do cenário em teste
- Altamente Configurável: grande quantidade de personalização: você pode filtrar Fuzzers específicos, códigos de resposta HTTP, métodos HTTP, caminhos de requisição, fornecer contexto de negócio e muito mais
- Auto-recuperável: como os testes são gerados, qualquer alteração na especificação OpenAPI é capturada automaticamente
- Simples de Aprender: curva de aprendizado suave, com configuração e sintaxe intuitivas
- Rápido: processo automático para escrever, executar e reportar testes que cobre milhares de cenários em minutos
Sem tempo? Confira o Guia de Início Rápido de 1 minuto!
Visão Geral
Usando uma sintaxe simples e minimalista, com uma curva de aprendizado suave, o CATS (Contract API Testing and Security) permite gerar milhares de testes de API em minutos com nenhum esforço de codificação. Todos os testes são gerados, executados e reportados automaticamente com base em um conjunto pré-definido de mais de 100 Fuzzers. Os Fuzzers cobrem uma ampla gama de testes de limite e cenários negativos, desde valores Unicode grandes totalmente aleatórios até valores bem elaborados e dependentes de contexto, com base nos tipos de dados e restrições da requisição. Mais ainda, você pode aproveitar o fato de que o CATS gera payloads de requisição dinamicamente e escrever testes funcionais de ponta a ponta simples.
Relatório HTML
Linha de Comando
Interface de terminal
Use --tui em um comando de fuzzing normal para acompanhar a execução e inspecionar os resultados sem sair do terminal:
cats --contract openapi.yml --server http://localhost:8080 --tui
A visão geral mostra Paths, configuração de execução, tempo de resposta, códigos de resposta HTTP, Sucesso/Avisos/Erros e Fuzzers executados usando a mesma terminologia da CLI e do relatório HTML. A tabela de fuzzers usa todas as linhas disponíveis do terminal; use j/k ou Page Up/Page Down para navegar por ela quando a lista completa não couber. Pressione 2 para Detalhes de Execução, 3 para o resumo de Execução e resultado do Quality gate, 4 para Detalhes de Execução por Motivo do Resultado, 5 para Paths incluídos, ou 6 para testes executados ordenados por Tempo de Resposta. As linhas de Motivo do Resultado e Path abrem seus testes correspondentes com Enter.
Use as teclas de seta ou j/k para selecionar um teste, e pressione Enter para inspecionar sua requisição, resposta, resultado, trace e comando de replay em uma visão detalhada em tela cheia. Pressione / na lista de testes para pesquisar IDs de teste, fuzzers, paths, cenários, motivos de resultado, métodos, resultados e códigos de resposta. a, e, w, s e i filtram todos, erro, aviso, sucesso e resultados ignorados. Esc primeiro limpa uma pesquisa ativa e, caso contrário, retorna à tela anterior; 1 abre a visão geral.
Pressione q para sair da interface. Durante uma execução ativa, isso solicita o cancelamento, finaliza o teste atual quando possível, preserva os resultados já gravados e sai com status 130. Após a execução ter terminado, q sai normalmente.
A TUI requer um terminal interativo de pelo menos 80 colunas por 24 linhas e não pode ser combinada com --dryRun. Ela está disponível para comandos de fuzzing baseados em OpenAPI; o comando template autônomo continua a usar a saída normal da CLI. A TUI retém os 10.000 detalhes de teste mais recentes por padrão; use --tuiMaxResults para escolher um limite positivo diferente. As estatísticas agregadas continuam a cobrir a execução completa quando detalhes mais antigos são descartados.
Tutoriais sobre como usar o CATS
Esta é uma lista de artigos com guias passo a passo sobre como usar o CATS:
- Testando a API do GitHub com o CATS
- Como escrever testes funcionais auto-recuperáveis sem esforço de codificação
Alguns bugs encontrados pelo 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
Instalação
Homebrew
> brew tap endava/tap
> brew install cats
Manual
O CATS é distribuído tanto como um JAR executável quanto como um binário nativo. Os binários nativos não precisam do Java instalado.
Após baixar o binário nativo do seu sistema operacional, você pode adicioná-lo ao PATH para executá-lo como qualquer outra ferramenta de linha de comando:
sudo cp cats /usr/local/bin/cats
Você também pode obter autocomplete baixando o script cats_autocomplete e executando:
source cats_autocomplete
Para obter autocomplete persistente, adicione a linha acima em .zshrc ou .bashrc, mas certifique-se de colocar o caminho completo para o script cats_autocomplete.
Você também pode verificar o código-fonte de cats_autocomplete para configurações alternativas.
Não há binário nativo para Windows, mas você pode usar a versão uberjar. Isso requer o Java 25+ instalado.
Você pode executá-lo como java -jar cats.jar.