Выбор ответа Senior API-автотесты обновлено

Consumer-driven contracts

Вопрос

В чём идея контрактного тестирования по схеме consumer-driven (например, Pact)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Потребитель фиксирует ожидания в контракте, поставщик проверяет его в CI. Потребитель в своих тестах описывает запросы и нужные ему части ответа, контракт публикуется (например, в Pact Broker), поставщик прогоняет его на своём коде.

Варианты ответа

  1. Поставщик публикует OpenAPI, а потребитель генерирует по нему клиента и типы
  2. Все сервисы разворачиваются вместе и тестируются на общем стенде
  3. Потребитель фиксирует ожидания в контракте, поставщик проверяет его в CIправильный ответ
  4. Это нагрузочный тест вызовов между сервисами по согласованному SLA

Разбор

Потребитель в своих тестах описывает запросы и нужные ему части ответа, контракт публикуется (например, в Pact Broker), поставщик прогоняет его на своём коде. Ломающее изменение видно до релиза и без общего стенда. Документация и сгенерированный по ней клиент не проверяют реальное поведение, интеграционный стенд медленный и хрупкий, к нагрузке это отношения не имеет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме