Карате не может автоматически перехватывать вызовы.
Рекомендуемый подход заключается в том, что при загрузке приложения, работающего на localhost:8080
, вы изменяете конфигурацию так, чтобы вместо вызова http://dev-stg/userservice/v1/findUser
оно вызывало что-то вроде http://localhost:8001/v1/findUser
. Это то, что делают большинство команд, и это легко, потому что вы все равно должны определить внешние URL-адреса как application.properties
(или эквивалентный) в качестве передового опыта.
Очень просто перезаписать приложение свойство Spring Boot, например, вы можете сделать это через командную строку: { ссылка }
Если вы хотите, вы можете динамически подготовить порт для макета. Таким образом, ваш модульный тест может сначала запустить макет, получить порт, а затем запустить сервер. Вы можете найти подробности в документации по каратэ.
Все это говорит о том, что если вы сможете изменить (системный) HTTP-прокси до запуска приложения в localhost:8080
, вы можете сделать это без изменения конфигурации. (Но это сложно, поэтому я рекомендую подход, объясненный выше.) Таким образом, в этом случае каратэ может фактически «перехватывать» исходящие HTTP-вызовы, которые делает приложение в localhost:8080
.
См. Второй-последний строка (5a) в таблице здесь: https://github.com/intuit/karate/tree/master/karate-netty#consumer -provider-example