Última atualização:
Stanislav Anisimov
Teste de contrato
Click to expand / collapse

Quando você trabalha com API entre equipes ou parceiros externos, é especialmente importante que o formato de solicitações e respostas permaneça previsível. Os testes contratuais permitem verificar que ambas as partes - cliente e servidor - concordam com a estrutura de compartilhamento e não violam as atualizações.

Introduzimos testes contratuais que verificam automaticamente a conformidade da API com a documentação ou expectativa do consumidor antes de entrar em produção.


O que é um contrato na API

O contrato é um acordo que define:
  • que campos contém o pedido e a resposta
  • que formatos de dados são válidos
  • que códigos de estado retornam
  • quais são os parâmetros exigidos

Violação de contrato = potencial falha do cliente ou do serviço.


Como funciona

LadoO que está sendo testado
Provedor (API)A API deve corresponder às expectativas do cliente em relação à estrutura de resposta
Cliente (consumer)O cliente aguarda um padrão específico - o teste verifica que ele foi cumprido
BidirectionalTeste bilateral: tanto o cliente quanto o servidor concordam com o contrato

Ferramentas utilizadas: Pact, Spring Cloud Contract, Dredd, Postman Contract Tests.


Vantagens de testes contratuais

Detecção de inconsistências antes do deploy

Proteção contra mudanças «silenciosas» que quebram clientes

Atualização segura da API

Aumentar a confiança entre equipes de desenvolvimento

Logar histórico de alterações contratuais


Como implantamos

Definição de contratos no formato OpenAPI/Pact

Integração CI com testes automáticos a cada comit

Visualização e histórico de alterações contratuais

Separação de quarta-feira (staging/performance)

Publicar contratos para integradores externos


Onde é particularmente importante

Microsserviços com responsabilidade dividida

Plataformas com integração B2B externa

API de várias equipes independentes

Sistemas críticos onde o erro é inadmissível (finanças, serviços públicos)


Os testes contratuais são uma ponte segura entre o servidor e o cliente. Nós ajudaremos a construir um processo em que nenhuma atualização comprometa a integração ou traga um erro inesperado.

Temas populares


Temas principais