Выбор ответа Senior JSON и JSON Schema обновлено

Контрактное тестирование

Вопрос

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

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

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

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

Коротко

Правильный ответ: Клиент фиксирует свои запросы и ожидания, провайдер проверяет их у себя в CI. Потребитель (consumer) в своих тестах записывает ожидания к API в файл-контракт.

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

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

Разбор

Потребитель (consumer) в своих тестах записывает ожидания к API в файл-контракт. Провайдер прогоняет контракты всех потребителей у себя и видит, что его изменение сломает конкретного клиента, ещё до деплоя. Это дешевле полноценных e2e на всех сервисах. Проверка по OpenAPI близка, но проверяет соответствие документу, а не реальным ожиданиям клиентов.

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

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