тестирование контрактов при раздельном интерфейсном и серверном репозиториях

#automation #continuous-integration #automated-tests #continuous-deployment #cicd

Вопрос:

мы используем конвейер кода для нашего CI-CD.

Интерфейсные и серверные хранилища являются отдельными репозиториями.

Мы проводим комплексные тесты cypress для развертывания как внешнего, так и внутреннего интерфейса.

Код объединяется из ветви функций ->dev ->>staging->>>prod и запускает соответствующие конвейеры.

Я хочу интегрировать контрактное тестирование. У нас уже есть документация swagger, созданная/сохраненная при развертывании шлюза API.

Я думаю, что для имитации тестирования контрактов, ориентированного на потребителя, в конце успешного выполнения конечных 2-х конечных тестов при развертывании как внешнего, так и внутреннего интерфейса я получу загрузку документа swagger JSON из API gateway и сохраню его в корзине s3, чтобы я мог использовать его в качестве ссылки для обнаружения критических изменений на этапе разработки/промежуточной стадии.

Должен ли я сравнивать разработку и постановку с prod, чтобы обнаружить критические изменения? Мне не нравится идея ссылаться на JSON из корзины s3 в учетной записи prod при развертывании в dev или промежуточной.

Как я могу усовершенствовать этот процесс? Каковы мои варианты?

Я знаю, что все, похоже, используют pact для тестирования контрактов, но я просто думаю, что это излишне, когда у нас уже есть документы swagger api.