Voltar às atualizações
New releaseSep 7, 2026

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.

Compartilhar

Logotipo do CATS

CI Commits

License Java Version GraalVM Quality Gate Status Coverage Bugs Code Smells

A documentação do CATS está disponível em https://endava.github.io/cats/

Ferramenta de fuzzing e testes negativos para API REST. Execute milhares de testes de API auto-regenerativos em minutos, sem necessidade 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 nos tipos de dados e restrições; cada Fuzzer tem expectativas específicas dependendo do cenário em teste
  • Altamente Configurável: alto grau 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-regenerativo: 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 relatar testes que cobre milhares de cenários em minutos

Pouco tempo? Confira o Guia de Início Rápido de 1 minuto!

Visão Geral

Usando uma sintaxe simples e mínima, com uma curva de aprendizado suave, o CATS (Contract API Testing and Security) permite gerar milhares de testes de API em minutos, sem esforço de codificação. Todos os testes são gerados, executados e relatados automaticamente com base em um conjunto predefinido de 100+ Fuzzers. Os Fuzzers cobrem uma ampla gama de cenários de teste de limites e negativos, desde valores Unicode grandes e totalmente aleatórios até valores bem elaborados e dependentes de contexto, baseados nos tipos de dados e restrições da requisição. Além disso, você pode aproveitar o fato de que o CATS gera dinamicamente os payloads das requisições e escrever testes funcionais simples de ponta a ponta.

Relatório HTML

CATS

Linha de Comando

CATS

Tutoriais sobre como usar o CATS

Esta é uma lista de artigos com guias passo a passo sobre como usar o CATS:

Alguns bugs encontrados pelo CATS

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 necessitam 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 o autocomplete baixando o script cats_autocomplete e executando:

source cats_autocomplete

Para ter autocomplete persistente, adicione a linha acima no .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 do cats_autocomplete para configurações alternativas.

Não há binário nativo para Windows, mas você pode usar a versão uberjar. Isso requer que o Java 25+ esteja instalado.

Você pode executá-lo como java -jar cats.jar.

Acesse a página de releases para baixar a versão mais recente: https://github.com/Endava/cats/releases.

Compilar a partir do código-fonte

Você pode compilar o CATS a partir do código-fonte em sua máquina local. Precisa do Java 25. O Maven já está incluído.

Antes de executar a primeira compilação, certifique-se de executar ./mvnw clean. O CATS usa um fork do OKHttp que será instalado localmente sob a versão 5.X.X-CATS, então não se preocupe em sobrescrever as versões oficiais.

Você pode usar o seguinte comando Maven para compilar o projeto como um uberjar:

./mvnw package -Dquarkus.package.type=uber-jar

Você obterá um cats-runner.jar na pasta target. Pode executá-lo com java -jar cats-runner.jar ....

Você também pode compilar imagens nativas usando uma versão Java do GraalVM.

./mvnw package -Pnative

Notas sobre Testes Unitários

Você pode ver algumas mensagens de log de error durante a execução dos Testes Unitários. Esse comportamento é esperado para testar os cenários negativos dos Fuzzers.

Como contribuir

Consulte CONTRIBUTING.md.

Categorias