Найти в Дзене

Wiremock

Оказывается это достаточно мощный инструмент для тестирования API. По работе иногда невозможно воспроизвести какие-то ответы от сторонних сервисов при тестировании ПО. Тут очень помог этот сервис. 1. Запускаем как скрипт - запускается на порту 8091 с выводом детальной информации в лог: java -jar wiremock-standalone-3.9.2.jar --port 8091 --verbose 2. Все файлы с "заглушками" хранятся в каталоге ../mappings/ 3. Если подставлять ответ "из файла", то берется из папки ../__files/ 4. Есть возможность сконфигурировать как перехват запроса по определённому условию, так и "спроксировать" запрос "дальше": Соответственно и условие выглядит так, как в картинке ниже. Для более простого JSON все значительно проще:
Условие "срабатывания" перехвата запроса - здесь в примере в теле запроса есть такое:
5. Помимо ответа можно "вдогонку" отправить новый запрос. 6. Очень тяжело настраивать тело ответа, но возможно Примеры на скрине. Есть возможность подключить файл, но там есть свои огран

Оказывается это достаточно мощный инструмент для тестирования API. По работе иногда невозможно воспроизвести какие-то ответы от сторонних сервисов при тестировании ПО. Тут очень помог этот сервис.

1. Запускаем как скрипт - запускается на порту 8091 с выводом детальной информации в лог:

java -jar wiremock-standalone-3.9.2.jar --port 8091 --verbose

2. Все файлы с "заглушками" хранятся в каталоге ../mappings/

3. Если подставлять ответ "из файла", то берется из папки ../__files/

4. Есть возможность сконфигурировать как перехват запроса по определённому условию, так и "спроксировать" запрос "дальше":

Соответственно и условие выглядит так, как в картинке ниже.

-2

Для более простого JSON все значительно проще:

Условие "срабатывания" перехвата запроса - здесь в примере в теле запроса есть такое:

Пример проксирования
Пример проксирования

5. Помимо ответа можно "вдогонку" отправить новый запрос.

-4

6. Очень тяжело настраивать тело ответа, но возможно

Примеры на скрине. Есть возможность подключить файл, но там есть свои ограничения.

7. Есть возможность имитировать "плохой" ответ (https://wiremock.org/docs/simulating-faults/)

{
"request": {
"method": "GET",
"url": "/fault"
},
"response": {
"fault": "MALFORMED_RESPONSE_CHUNK"
}
}

Параметр fault может принимать одно из четырёх значений:

EMPTY_RESPONSE — возвращает полностью пустой ответ. MALFORMED_RESPONSE_CHUNK — отправляет заголовок успешности ответа, затем отправляет мусор и закрывает соединение.

RANDOM_DATA_THEN_CLOSE — отправляет мусор и закрывает соединение. CONNECTION_RESET_BY_PEER — некорректно закрывает TCP-соединение.

-----

Оригиналы - в облаке