Teste de carga OpenAPI
É uma cilada,
Bino!
Aponte para um contrato OpenAPI via linha de comando ou arquivo de configuração e o Cilada já sai na estrada: gera os cenários, manda a carga com o Locust e te entrega um relatório completo. Tudo sem escrever um caso de teste.
Tipagem estrita, sintaxe moderna e zero gambiarras de compatibilidade.
O contrato OpenAPI é a fonte da verdade. Você não escreve caso nenhum.
Engine de carga battle-tested, sem camada extra de abstração no meio do caminho.
Código aberto, sem dependências proprietárias e livre para usar em qualquer projeto.
Por que o Cilada?
Montar uma suíte de carga do zero leva tempo. O Cilada lê o contrato, entende os endpoints e gera os cenários pra você. É só ajustar o TOML e apertar o gatilho.
Contrato como fonte da verdade
Lê o OpenAPI online e gera os casos com exemplos, defaults, enums e valores de limite. Atualizou o contrato? Na próxima execução os casos já refletem as mudanças.
100% CLI & TOML Opcional
O arquivo .cilada.toml é opcional. Defina parâmetros como --users,
-H, -m e --spawn-rate direto no comando, ou use o TOML se preferir.
Modo dry-run
Valide o contrato, a seleção e os casos gerados sem mandar um único byte de carga real. Perfeito para rodar no CI antes do disparo de verdade.
Segredos por variável de ambiente
Use ${CILADA_TOKEN} no TOML e injete via CI ou cofre de secrets. Headers sensíveis usam
entrada oculta no modo interativo.
Resumo consolidado ao final
Sempre que o teste termina, você vê o total de requisições, falhas, tempos mín/méd/máx e o breakdown por método e código HTTP.
Modo não-interativo
--non-interactive executa com zero interação: ignora solicitações de valores e confirmações
no terminal, ideal para pipelines de CI/CD.
Relatórios que prestam
Depois da carga, o Cilada entrega dois formatos de relatório prontos para você analisar, compartilhar ou jogar num dashboard.
Relatório HTML interativo HTML
O Locust gera um relatório visual completo com gráficos de
requisições por segundo, tempo de resposta ao longo do tempo e
tabela de estatísticas por endpoint. Configure o caminho com
html_report no TOML e ele fica salvo automaticamente.
Estatísticas em CSV CSV
Quatro arquivos CSV: estatísticas por endpoint, histórico por
janela de tempo, falhas e exceções. Configure csv_prefix
no TOML para persistir os arquivos no diretório que quiser, ou
deixe em branco e o Cilada usa um diretório temporário e limpa
tudo ao fim.
Como funciona
Do contrato ao relatório em quatro etapas. Sem configuração elaborada, sem servidor de métricas extra.
Lê o contrato
Busca o OpenAPI da URL configurada, valida a estrutura e resolve a base URL antes de qualquer outra coisa.
Gera os cenários
Cria variações de payload usando exemplos, defaults, enums e limites. Campos opcionais são removidos em algumas variações.
Manda a carga
Passa os cenários ao Locust. Cada requisição sorteia aleatoriamente um caso. A tabela nativa do Locust exibe o andamento.
Entrega os relatórios
Resumo no console, relatório HTML interativo e CSVs com todas as estatísticas, por endpoint e por janela de tempo.
CLI em primeiro lugar, TOML opcional
Tudo pode ser configurado por argumentos de linha de comando com precedência máxima, ou centralizado em um
arquivo .cilada.toml opcional: URL do OpenAPI, headers de autenticação, verbos habilitados,
paths incluídos e excluídos, parâmetros do Locust e relatórios.
A precedência é sempre Argumentos CLI > Arquivo TOML > Defaults.
Segredos podem ser injetados por variáveis como ${CILADA_TOKEN} ou passados por parâmetro
CLI.
# .cilada.toml (opcional) [api] openapi_url = "https://api.exemplo.com/static/swagger.json" verify_tls = true timeout_seconds = 30.0 [api.headers] Authorization = "Bearer ${CILADA_TOKEN}" [test] enabled_methods = ["GET", "HEAD", "OPTIONS"] exclude_paths = ["/health", "/metrics"] cases_per_operation = 3 [locust] users = 20 spawn_rate = 5.0 run_time = "1m" headless = true csv_prefix = "reports/cilada" html_report = "reports/cilada.html"
Segurança operacional primeiro
O exemplo padrão habilita só GET, HEAD e
OPTIONS. Verbos destrutivos como POST,
PUT, PATCH e DELETE devem ser
ativados só em ambientes isolados, com dados descartáveis e
autorização explícita. Nunca versione tokens no TOML. Use
${NOME_DA_VARIAVEL} e injete pelo cofre do pipeline.
Início rápido
Três passos para sair do zero ao primeiro relatório de carga.
Prepare o ambiente
python3 -m venv .venv source .venv/bin/activate pip3 install cilada
Requer Python 3.11+. Funciona em qualquer virtualenv.
CLI ou TOML (opcional)
# Opcional: criar modelo de arquivo TOML cilada config init
Rode direto via linha de comando ou crie um modelo .cilada.toml se preferir salvar em
arquivo.
Execute
# Execução direta por argumentos CLI: cilada run -u https://api.exemplo.com/openapi.json \ --users 20 -H "Authorization: Bearer token" # Validação sem carga real (dry-run): cilada run --dry-run
Comece com o dry-run para validar o contrato e os cenários antes de disparar a carga de verdade.