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

Контракт — это набор взаимодействий, на которые полагается потребитель: эти запросы, на которые отвечают в виде ответов определенной формы и с определенными кодами состояния. Тестирование контракта проверяет каждую сторону на соответствие контракту отдельно — потребителя на основе созданного на его основе макета, поставщика на основе запросов, записанных в нем, — поэтому несовместимости выявляются до развертывания, а не в сквозной среде.

Как это работает

В тестировании контрактов, инициируемом потребителем (Pact — наиболее известный инструмент), тесты каждого потребителя создают файл контракта; сборка поставщика воспроизводит каждый контракт на реальном сервисе и завершается с ошибкой, если какое-либо ожидание нарушается. В тестировании контрактов на основе схемы ответы проверяются на соответствие документу OpenAPI API.

Заблуждение

Контрактные тесты проверяют поведение. Они проверяют структуру и протокол — существует ли поле, имеет ли оно тип, обладает ли статусом. Проверка корректности цены в этом поле — задача функционального теста. Команды, заменяющие функциональные тесты контрактными, выпускают корректные, но неверные результаты.

Попробуйте здесь.

Загрузите документацию OpenAPI для любого API со страницы документации и проверьте полученные ответы. Попробуйте проверить их на практике; язык утверждений также может закрепить контракт по точкам, например, "body.data.0.id существует".

Источники

Другие термины

Читать страницу на английском

Все термины · Приёмы тестирования · Все 39 mock REST API

Последнее обновление