Контрактне тестування

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

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

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

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

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

Як це працює

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

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

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

Виявлення невідповідностей до деплою
Захист від «тихих» змін, які ламають клієнтів
Безпечне оновлення версій API
Підвищення довіри між командами розробки
Логування історії змін контрактів

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

Визначення контрактів у форматі OpenAPI/Pact
CI-інтеграція з автоматичним прогонам тестів при кожному комміті
Візуалізація та історія змін контрактів
Розділення по середах (staging/production)
Публікація контрактів для зовнішніх інтеграторів

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

Мікросервіси з розділеною відповідальністю
Платформи з зовнішніми B2B-інтеграціями
Робота над API декількома незалежними командами
Критичні системи, де помилка неприпустима (фінанси, держпослуги)

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

Зв’язатися з нами

Заповніть форму нижче, і ми відповімо вам найближчим часом.

Електронна пошта:

info@jackcode.io

support@jackcode.io