Комментарии 8
А данная реализация позволяет провести нагрузочное тестирование на реализуемый метод?
Когда разработчики поднимают мок в коде, они получают ценную возможность запускать такой тест параллельно с другими тестами, потому что моки поднятые каждым тестов используют разные случайные порты на localhost и не конфликтуют. А как с этим у wiremock - можно ли как-то обеспечить параллельное выполнение разных тестов?
Привет! Если я правильно понял, нужно запустить сразу несколько тестов, которые будут обращаться к Wiremock. Wiremock может обслуживать сразу несколько клиентов и отдавать заглушки без проблем (пока не будет достигнут предел по нагрузке). А это значит, что ничего не мешает запускать тесты параллельно. Разве что, необходимо менять содержимое моков через API Wiremock. В таком случае параллельный запуск не сработает.
Ну вот да. Нередко есть какой-то endpoint (почти) без параметров (ну т.е. мы не можем заложить в мок разные ответы в зависимости от параметров запроса), и нужно потестировать реакцию когда он вернёт ошибку/одно значение/группу значений в одном тесте (потому что этот тест тестирует конкретно работу с данным endpoint) и просто какое-то константное значение во всех остальных тестах (потому что остальные тесты тестируют что-то другое и от этого endpoint им нужен любой минимальный ответ который не будет мешать работе тестируемого кода). Насколько я понимаю, параллельный запуск первого теста с остальными невозможен, верно?
Верно, если запрос один и тот же, а ответ должен меняться, то параллельный запуск невозможен, так как такие запросы неразличимы в принципе.
Но вы можете добавить в запрос скозной заголовок, по которому будете решать какой ответ отправить. Сквозной означает, что значение этого заголовка, полученное на вход API сервиса, будет пробрасываться в исходящие запросы к grpc-wiremock.
Привет! Пытаюсь разобраться с проектом и появился вопрос - а можно ли использовать его просто как grpc mock server? Как gripmock, только с поддержкой tls.
Как мы сделали grpc-wiremock: сервис, создающий мок-сервер для ваших контрактов в одну команду