Repolode
N4darae

N4darae/shrt

Um harness de testes de regressão que reproduz sequências gravadas de chamadas à API em um backend, usando baselines aprovadas por pessoas para detectar mudanças entre releases.

Estrelas
2,388
Forks
164
Issues abertas
6
Último commit
há 12 dias

O que é?

shrt testa um backend por meio de sequências de chamadas à API definidas em YAML, como fazer login, criar um item, adicionar estoque e consultar o resultado. Uma pessoa aprova uma execução bem-sucedida como baseline, e as releases posteriores são reproduzidas em comparação com ela. Quando um campo muda, shrt informa a etapa, o campo e a gravação que suspeita ter causado a mudança.

Um arquivo de contrato descreve o que cada rpc exige, de onde vêm os valores, como rejeita entradas inválidas e como as gravações alteram campos numéricos. shrt pode gerar sequências a partir desse contrato, testando valores de limite, tokens ausentes ou inválidos, IDs desconhecidos e duplicatas. A ferramenta usa o protocolo Connect sobre HTTP POST, então funciona com servidores criados com connect-go; servidores que oferecem apenas gRPC não são compatíveis. São aceitos rpcs unários e de streaming do servidor, com os streams lidos até a primeira mensagem.

A ferramenta é escrita em Go e precisa do buf para compilar arquivos .proto. As credenciais são lidas de variáveis de ambiente e removidas dos registros de execução. Ela só envia requisições para localhost, a menos que o host de destino esteja listado na configuração, e foi projetada para ser usada por um agente de programação, embora todos os comandos também possam ser executados manualmente.

Recursos principais

  • 01As sequências de chamadas à API são definidas em arquivos YAML e reproduzidas a cada release.
  • 02Baselines aprovadas por pessoas registram campos das respostas, inclusive aqueles que não são verificados por nenhuma asserção.
  • 03Um arquivo de contrato pode gerar sequências de teste que cobrem limites, falhas de autenticação e duplicatas.
  • 04As falhas identificam a etapa, o campo alterado e a gravação suspeita.
  • 05As requisições são limitadas a localhost ou a hosts explicitamente permitidos para proteger os dados de produção.
  • 06Um comando de CI gate retorna um código diferente de zero em caso de falha.

Casos de uso

  • Detectar regressões em um backend connect-go entre releases.
  • Executar verificações de regressão da API em CI para cada novo build.
  • Permitir que um agente de programação escreva e mantenha contratos de teste da API sob revisão humana.

Início rápido

  1. 1

    Instale buf (a ferramenta de build do Protocol Buffers que o shrt precisa no PATH)

  2. 2

    Instale o shrt com Go 1.26 ou posterior

    go install github.com/N4darae/shrt/cmd/shrt@latest
  3. 3

    Confira a versão instalada

    shrt version
  4. 4

    Configure o shrt no seu projeto de backend e confira

    shrt init

Antes de usar

  • Requer Go 1.26 ou posterior e buf no PATH.
  • Funciona apenas com servidores que usam o protocolo Connect, não com servidores que usam somente gRPC.
  • Em RPCs de streaming, lê apenas até a primeira mensagem.
  • shrt init deduz qual RPC é o de login, então é preciso conferir o resultado.

Em coleções

Tópicos

#testing#api-testing#regression-testing#go#connect-rpc#grpc#ci-cd#ai-agent

Perguntas frequentes

O que é shrt?
Um harness de testes de regressão que reproduz sequências gravadas de chamadas à API em um backend, usando baselines aprovadas por pessoas para detectar mudanças entre releases. shrt testa um backend por meio de sequências de chamadas à API definidas em YAML, como fazer login, criar um item, adicionar estoque e consultar o resultado. Uma pessoa aprova uma execução bem-sucedida como baseline, e as releases posteriores são reproduzidas em comparação com ela. Quando um campo muda, shrt informa a etapa, o campo e a gravação que suspeita ter causado a mudança.
shrt é gratuito? Qual é a licença?
shrt é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
shrt ainda é mantido?
Manutenção ativa. O último commit de shrt foi em 26 de out. de 2026.
Para que posso usar shrt?
Detectar regressões em um backend connect-go entre releases. Executar verificações de regressão da API em CI para cada novo build. Permitir que um agente de programação escreva e mantenha contratos de teste da API sob revisão humana.
Como instalar shrt?
Instale buf (a ferramenta de build do Protocol Buffers que o shrt precisa no PATH) Instale o shrt com Go 1.26 ou posterior: go install github.com/N4darae/shrt/cmd/shrt@latest Confira a versão instalada: shrt version Configure o shrt no seu projeto de backend e confira: shrt init
Onde consigo shrt?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/N4darae/shrt

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados