Останнє редагування:
Станіслав Анісімов
Контрактне тестування
Click to expand / collapse

При роботі з API між командами або зовнішніми партнерами особливо важливо, щоб формат запитів і відповідей залишався передбачуваним. Контрактне тестування дозволяє перевірити, що обидві сторони - клієнт і сервер - згодні на структуру обміну і не порушують її при оновленнях.

Ми впроваджуємо контрактні тести, які автоматично перевіряють відповідність API документації або очікуванням споживача - до виходу в продакшн.


Що таке контракт в API

Контракт - це угода, що визначає:
  • які поля містить запит і відповідь
  • які формати даних допустимі
  • які коди статусів повертаються
  • які обов'язкові параметри потрібні

Порушення контракту = потенційний збій на стороні клієнта або сервісу.


Як це працює

СторонаЩо тестується
Провайдер (API)API повинен відповідати очікуванням клієнта щодо структури відповіді
Клієнт (consumer)Клієнт очікує певну схему - тест перевіряє, що вона дотримана
BidirectionalДвостороннє тестування: і клієнт, і сервер згодні з контрактом

Інструменти, що використовуються: Pact, Spring Cloud Contract, Dredd, Postman Contract Tests.


Переваги контрактного тестування

Виявлення невідповідностей до деплою

Захист від «тихих» змін, які ламають клієнтів

Безпечне оновлення версій API

Підвищення довіри між командами розробки

Логування історії змін контрактів


Як ми впроваджуємо

Визначення контрактів у форматі OpenAPI/Pact

CI-інтеграція з автоматичним прогонам тестів при кожному комміті

Візуалізація та історія змін контрактів

Розділення по середах (staging/production)

Публікація контрактів для зовнішніх інтеграторів


Де особливо важливо

Мікросервіси з розділеною відповідальністю

Платформи з зовнішніми B2B-інтеграціями

Робота над API декількома незалежними командами

Критичні системи, де помилка неприпустима (фінанси, держпослуги)


Контрактне тестування - це надійний міст між сервером і клієнтом. Ми допоможемо вибудувати процес, при якому ніяке оновлення не порушить інтеграції і не принесе несподіваних багів.

Популярні теми


Основні теми