Ultimo aggiornamento:
Stanislav Anisimov
Test contrattuale
Click to expand / collapse

Quando si lavora con un'API tra team o partner esterni, è particolarmente importante che il formato delle richieste e delle risposte rimanga prevedibile. I test contrattuali consentono di verificare che entrambe le parti, client e server, accettano la struttura di scambio e non violano gli aggiornamenti.

Implementiamo test contrattuali che controllano automaticamente la conformità dell'API alla documentazione o alle aspettative del consumatore prima di entrare in produzione.


Cos'è un contratto API

Il contratto è un accordo che definisce:
  • quali campi contengono la richiesta e la risposta
  • quali formati di dati sono validi
  • quali codici di stato vengono restituiti
  • quali sono i parametri richiesti

Violazione del contratto = potenziale guasto del cliente o del servizio.


Come funziona

LatoCosa viene testato
Provider (API)L'API deve soddisfare le aspettative del cliente sulla struttura della risposta
ClientIl client è in attesa di uno schema specifico per verificare che sia stato rispettato
BidirectionalTest bidirezionali, sia client che server accettano il contratto

Gli strumenti utilizzati sono Pact, Spring Cloud Contract, Dredd, Postman Contract Test.


Vantaggi dei test contrattuali

Rilevamento delle incongruenze prima del deploy

Protezione dai cambiamenti silenziosi che compromettono i clienti

Aggiornamento dell'API sicuro

Maggiore fiducia tra i team di sviluppo

Loging della cronologia delle modifiche contrattuali


Come implementiamo

Definizione dei contratti in formato OpenAPI/Pact

Integrazione CI con test automatici per ogni commit

Visualizzazione e cronologia delle modifiche contrattuali

Suddivisione per ambienti (staging/production)

Pubblicazione di contratti per integratori esterni


Dove è particolarmente importante

Microservizi con responsabilità separata

Piattaforme B2B esterne

Elaborazione delle API con più comandi indipendenti

Sistemi critici in cui l'errore non è valido (finanza, servizi pubblici)


I test contrattuali sono un ponte affidabile tra il server e il client. Vi aiuteremo a costruire un processo in cui nessun aggiornamento possa compromettere l'integrazione e portare errori inaspettati.

Temi popolari


Temi principali