Mock Service SOAP UI

Mock Service реализует то, что также называют: Mock, Stub, Fake, Сервис-имитация, Заглушка

Сделаем сервис, который будет посылать нам сообщения в ответ на определённый тип запроса на определённый EndPoint

Для примера я выбрал сервис для сайта о велосипедах TopBicycle.ru заходите на этот сайт если любите велосипеды.

Аналогичный функционал можно реализовать с помощью любого веб-сервера.

Если не хотите связываться с SOAP UI - советую прочитать статью Flask

File → Create Empty Project

SOAP UI Create Empty Project изображение с сайта www.andreyolegovich.ru

Введите имя проекта

SOAP UI Enter Project Name изображение с сайта www.andreyolegovich.ru

New Rest Mock Service

SOAP UI New Rest Mock Service изображение с сайта www.andreyolegovich.ru

Укажите имя MockService

SOAP UI Specify name of MockService изображение с сайта www.andreyolegovich.ru

Add new mock action

SOAP UI Add new mock action изображение с сайта www.andreyolegovich.ru

Введите путь и выберите метод GET

SOAP UI Enter Resource path изображение с сайта www.andreyolegovich.ru

New MockResponse

SOAP UI New MockResponse изображение с сайта www.andreyolegovich.ru

Введите имя нового ответа

SOAP UI Enter name of new MockResponse изображение с сайта www.andreyolegovich.ru

Скопируйте json и вставьте в тело ответа

{ "bicycles":{ "bicycle": [{ "id":1, "name": " Helkama ", "country": " Finland" }, { "id":2, "name": " Stels ", "country": "Russia" },{ "id":3, "name": " Tunturi ", "country": " Finland " }] } }

Замените Content | Media type на application/json. Http Status Code должен быть 200 – OK. Headers введите по желанию. Их можно добавить нажав на зелёный плюс +

SOAP UI Copy the json below and paste it to the Response body изображение с сайта www.andreyolegovich.ru

Правой кнопкой мыши кликните на BicycleService и

Add new mock action

Назовите его «bicycle/1»

Правой кнопкой мыши кликните на «bicycle/1» (или кликните Ctrl + N) и

create New MockResponse

назовите его «singleBicycle»

Скопируйте json и вставьте в тело ответа

{ "bicycle": { "id":1, "name":"Helkama", "country":"Finland" } }

SOAP UI new mock response изображение с сайта www.andreyolegovich.ru

Создайте новый mock action, имя оставьте старое «/bicycle» а тип измените на POST вместо GET.

Создайте новый MockResponse и назовите его «addBicycle»

Скопируйте json и вставьте в тело ответа

{"key":12041961}

SOAP UI изображение с сайта www.andreyolegovich.ru

Создайте новый mock action типа GET и назовите его «/incorrectep» а новый MockResponse «400» Измените Http Status Code на 400 – Bad Request

SOAP UI Http Status Code 400 - Bad Request изображение с сайта www.andreyolegovich.ru

Обратите внимание, что сервис BicycleService использует порт 8080

SOAP UI Http Status Code 400 - Bad Request изображение с сайта www.andreyolegovich.ru

Запустите BicycleService нажав на зелёный треугольник

SOAP UI start REST Mock service изображение с сайта www.andreyolegovich.ru

У нас есть четыре сценария

Используем Postman чтобы протестировать их

POST на http://localhost:8080/bicycle

Должен вернуть key 12041961

SOAP UI изображение с сайта www.andreyolegovich.ru

GET на http://localhost:8080/bicycle

Должен вернуть список велосипедов

SOAP UI изображение с сайта www.andreyolegovich.ru

GET на http://localhost:8080/bicycle/1

Должен вернуть первый велосипед

SOAP UI изображение с сайта www.andreyolegovich.ru

GET на http://localhost:8080/incorrectep

Должен вернуть пустой ответ и Http Status 400 Bad Request

SOAP UI изображение с сайта www.andreyolegovich.ru

Dynamic Response

Чтобы заменить статичный ответ 12041961 на динамический в запросе POST на /bicycle заменим 12041996 на ${variable} и в script добавим следующий код:

context.setProperty("variable" ,Math.random()*100000000000000000)

SOAP UI script изображение с сайта www.andreyolegovich.ru

Чтобы протестировать отправим несколько запросов из Postman и проверим изменяется ли ответ

Postman request изображение с сайта www.andreyolegovich.ru

Если остались вопросы - смело задавайте их в комментариях либо воспользуйтесь поиском по сайту

Поиск по сайту

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: