Se você quer gerar testes de API sem escrevê-los manualmente, o Keploy é uma opção interessante: ele observa sua aplicação em execução, captura tráfego real e transforma essas interações em uma suíte de testes reproduzível. Na prática, ele funciona melhor quando você já tem uma API rodando e quer criar testes de regressão rapidamente a partir do comportamento real.
Neste guia, você verá o que é o Keploy, como a gravação e reprodução funciona com eBPF, quando usar cada fluxo de trabalho, como instalar e executar os comandos principais, e quais limitações considerar antes de adotá-lo.
O que é o Keploy
Keploy é uma plataforma open source, sob licença Apache-2.0, para criar testes de API, integração e ponta a ponta a partir do comportamento real da aplicação.
A ideia é simples:
- Você executa sua aplicação com o Keploy.
- Faz chamadas reais contra sua API.
- O Keploy captura requisições, respostas e dependências.
- Ele gera casos de teste e mocks.
- Depois, você reproduz esses testes para detectar regressões.
O Keploy oferece dois fluxos principais:
- Gravação e reprodução: captura interações reais de API e dependências, depois reproduz tudo de forma determinística.
- Geração de testes por IA: cria suítes de testes de API a partir de uma especificação, coleção, comando cURL ou endpoint ativo.
O projeto é open source. Você pode consultar o código em github.com/keploy/keploy e a documentação em keploy.io/docs.
Como a gravação do Keploy funciona com eBPF
O diferencial do Keploy está na forma de captura. Ao executar keploy record, você não precisa instalar SDK, alterar handlers ou adicionar instrumentação no código.
O Keploy captura tráfego na camada de rede usando eBPF, uma tecnologia do kernel Linux que permite observar eventos do sistema de forma segura.
Na prática, isso significa:
- Sem alteração de código: a aplicação continua igual.
- Agnóstico à linguagem: funciona com diferentes runtimes, como Go, Python, Java, Node.js ou Rust.
- Captura de dependências: além da requisição de entrada e da resposta da API, o Keploy captura chamadas de saída para bancos, filas e outros serviços.
Quando você grava uma interação, o Keploy gera dois tipos de artefatos:
- Um caso de teste, com a requisição e a resposta esperada.
- Mocks/stubs de dependências, usados para reproduzir chamadas externas sem depender de serviços ativos.
Durante a reprodução com keploy test, ele:
- Inicia sua aplicação.
- Envia novamente as requisições gravadas.
- Responde chamadas de dependência usando os mocks capturados.
- Compara a resposta atual com a resposta gravada.
Se houver diferença, o teste falha. Esse é o ciclo de regressão: gravar um comportamento conhecido como correto e validar se ele continua igual após mudanças no código.
Fluxos de trabalho do Keploy
1. Gravação e reprodução
Use este fluxo quando você já tem uma aplicação funcionando e quer obter cobertura de regressão rapidamente.
Exemplo de uso:
keploy record -c "node server.js"
Depois de iniciar a aplicação com o Keploy, faça chamadas contra sua API usando ferramentas como cURL, Postman, Apidog, testes existentes ou tráfego real em um ambiente controlado.
O Keploy salva os casos capturados e os mocks necessários.
Depois, execute:
keploy test -c "node server.js" --delay 10
Esse comando reproduz os testes e verifica se o comportamento mudou.
2. Geração de testes por IA
Use este fluxo quando você quer ampliar a cobertura ou partir de um contrato de API.
O Keploy pode gerar testes a partir de:
- Especificação OpenAPI
- Coleção Postman
- Comando cURL
- Endpoint ativo
Esse fluxo é útil quando você quer criar testes além dos caminhos exercitados manualmente. Ainda assim, os testes gerados precisam ser revisados para garantir que representam contratos reais da API.
Os dois fluxos são complementares:
- Gravação e reprodução captura comportamento real.
- Geração por IA ajuda a preencher lacunas a partir da especificação.
Se você está comparando ferramentas de geração de testes, veja também este resumo de geradores de casos de teste de IA e o guia para gerar scripts de teste a partir de OpenAPI.
Instalando o Keploy
Em um sistema suportado, instale o Keploy com:
curl --silent -O -L https://keploy.io/install.sh && source install.sh
Depois da instalação, confirme se o comando está disponível:
keploy --version
A partir daí, o fluxo básico usa dois comandos:
keploy recordkeploy test
Comando para gravar testes
Para gravar interações da aplicação:
keploy record -c "COMANDO_PARA_EXECUTAR_APLICATIVO"
Exemplo com Node.js:
keploy record -c "node server.js"
Exemplo com uma aplicação Go:
keploy record -c "go run main.go"
Enquanto o comando estiver rodando:
- Acesse seus endpoints.
- Execute chamadas manuais ou automatizadas.
- Gere tráfego representativo.
- Finalize a sessão quando terminar.
O Keploy salvará os testes e mocks capturados.
Comando para reproduzir testes
Para executar os testes gravados:
keploy test -c "COMANDO_PARA_EXECUTAR_APLICATIVO" --delay 10
Exemplo:
keploy test -c "node server.js" --delay 10
A flag --delay 10 faz o Keploy aguardar 10 segundos antes de iniciar a reprodução das requisições. Isso dá tempo para sua aplicação subir completamente.
Se o serviço demora mais para iniciar, aumente o valor:
keploy test -c "node server.js" --delay 20
Se inicializa rápido, você pode reduzir:
keploy test -c "node server.js" --delay 5
Primeiro ciclo completo
Um fluxo inicial simples seria:
# 1. Grave interações reais da API
keploy record -c "node server.js"
# 2. Reproduza os testes capturados
keploy test -c "node server.js" --delay 10
Depois que os testes forem gerados, você pode versionar os artefatos junto com o código e executá-los no CI.
Linguagens, protocolos e bancos suportados
Como a captura acontece na camada de rede, o Keploy cobre diferentes stacks.
| Categoria | Suportado |
|---|---|
| Linguagens | Go, Java, Node.js, Python, Rust, C#, C/C++, TypeScript e mais |
| Protocolos | HTTP/REST, gRPC, GraphQL, Kafka, RabbitMQ |
| Armazenamentos de dados | PostgreSQL, MySQL, MongoDB, Redis |
Essa abrangência vem do uso de eBPF. Como o Keploy observa conversas de rede, ele não depende diretamente do framework usado pela aplicação, desde que o tráfego esteja em protocolos suportados.
Executando Keploy no CI
O Keploy pode ser usado como etapa de regressão no pipeline.
Um fluxo típico é:
- Grave testes em uma versão conhecida como correta.
- Revise os testes e mocks gerados.
- Comite os artefatos junto com o código.
- Execute
keploy testno CI. - Falhe a build se houver divergência.
Exemplo genérico:
keploy test -c "node server.js" --delay 10
Como os mocks substituem dependências reais, a reprodução não precisa necessariamente de banco de dados ativo ou serviços downstream no executor do CI. Isso ajuda a manter os testes mais determinísticos.
Limitações a considerar
Keploy resolve bem o problema de capturar comportamento real e transformá-lo em testes, mas há limites importantes.
Requer ambiente compatível com eBPF
eBPF é um recurso do kernel Linux. Em muitos cenários, a captura também exige permissões elevadas.
Isso influencia onde você consegue rodar o Keploy, especialmente em ambientes locais, containers e CI.
Testes gerados precisam de revisão
Testes criados a partir de tráfego real ou geração por IA não devem ser tratados como suíte final imediatamente.
Você ainda precisa revisar:
- Quais interações representam contratos reais.
- Quais respostas têm dados voláteis.
- Quais casos são ruído.
- Quais mocks devem ser mantidos.
Não é uma plataforma completa de ciclo de vida de API
O Keploy foca em teste e geração de testes. Ele não tem como objetivo cobrir todo o ciclo de vida de API, como:
- Design de API
- Documentação colaborativa
- Mock servers para consumidores
- Colaboração em torno de especificações
- Gestão completa de coleções e ambientes
Esses limites não tornam o Keploy uma ferramenta ruim. Eles apenas definem quando ele é a escolha certa.
Onde o Apidog se encaixa como alternativa de testes projetados
Se sua necessidade é maior do que transformar tráfego observado em testes de regressão, vale considerar uma plataforma de ciclo de vida completo.
O Apidog é uma plataforma de API tudo-em-um para design, depuração, mocking, documentação e testes.
A diferença principal é a abordagem:
- Keploy captura e reproduz comportamento real em runtime, incluindo mocks de dependências, sem alteração de código.
- Apidog permite projetar, organizar e manter cenários de teste dentro de uma plataforma de API, e executá-los via terminal e CI com o Apidog CLI.
Com o Apidog CLI, você pode executar coleções com:
- Testes orientados a dados usando CSV ou JSON
- Alternância de ambientes
- Relatórios CLI, HTML e JSON
O Apidog também oferece geração de casos de teste por IA a partir do esquema da API e endpoints, criados dentro da aplicação.
A distinção é importante: o Apidog não captura tráfego ao vivo via eBPF e não gera testes automaticamente gravando chamadas reais com mocks de dependência. Essa é uma capacidade específica do Keploy.
Use o Keploy quando você precisa de gravação e reprodução em runtime com zero código. Use o Apidog quando quer suítes de teste projetadas, revisáveis e mantidas dentro de uma plataforma que também cobre outras etapas do ciclo de vida da API.
Para comparar as duas abordagens, veja Apidog vs Keploy. Se você pretende migrar, este passo a passo de migração mostra como transferir seus testes.
Se você quer criar testes de API projetados e manteníveis, pode baixar o Apidog e começar com o guia sobre como testar uma API com Apidog.
Perguntas frequentes
O Keploy é gratuito e open source?
Sim. O Keploy é open source sob licença Apache-2.0. O código está disponível no GitHub e você pode auto-hospedá-lo.
O Keploy exige alteração no código da aplicação?
Não. O fluxo de gravação e reprodução captura tráfego na camada de rede usando eBPF. Portanto, não há SDK para adicionar nem alterações obrigatórias no código.
O que a flag --delay faz em keploy test?
Ela define quantos segundos o Keploy espera antes de enviar as requisições gravadas. Isso dá tempo para a aplicação inicializar.
Exemplo:
keploy test -c "node server.js" --delay 10
Nesse caso, o Keploy espera 10 segundos.
O Keploy pode simular meu banco de dados durante os testes?
Sim. Ao gravar uma interação, o Keploy também captura chamadas de dependência, como consultas de banco de dados, e gera mocks para que a reprodução ocorra sem um banco ativo.
O Keploy substitui uma ferramenta de design e documentação de API?
Não. O Keploy é uma ferramenta de teste e geração de testes. Para design, documentação, mocking para consumidores, colaboração e testes em uma única plataforma, uma solução de ciclo de vida completo como o Apidog é mais adequada.
Resumo
O Keploy transforma tráfego real de API em testes de regressão. Ele usa eBPF para capturar requisições, respostas e chamadas de dependência sem alterar o código da aplicação. Depois, reproduz essas interações com mocks para detectar mudanças de comportamento.
Ele é útil quando você quer criar testes rapidamente a partir de uma aplicação existente. Porém, exige atenção ao ambiente Linux/eBPF, revisão dos testes gerados e entendimento de que seu escopo é focado em testes.
Se você precisa de captura e reprodução baseada em tráfego real, avalie o Keploy. Se precisa de suítes de teste projetadas e mantidas dentro de uma plataforma completa de API, compare com o Apidog.


Top comments (0)