Mock Service SOAP UI

Contents
Введение
Пример
Dynamic Response
Связанные статьи

Введение

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

Пример

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

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

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

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

File → Create Empty Project

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

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

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

New Rest Mock Service

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

Укажите имя MockService

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

Add new mock action

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

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

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

New MockResponse

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

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

SOAP UI Enter name of new MockResponse изображение с сайта www.eth1.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.eth1.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.eth1.ru

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

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

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

{"key":12041961}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dynamic Response

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

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

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

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

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

Article author: Andrei Olegovich

Related articles
Testing
Education
Lessons
API Testing
Automation
Theory
Mock Service with SOAP UI
Список открытых API
Banner image

Search this site

Subscribe to Telegram channel @aofeed to follow new articles and updates to old ones

Go to channel

@aofeed

Ask a question in the Telegram group

@aofeedchat

Contacts and cooperation:
I recommend our hosting beget.com
Write to info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: