Mock Service SOAP UI

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

Введение

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
Похожие статьи
Тестирование ПО
Где учиться на тестировщика
Учебник по тестированию API
Тестирование API
Автоматизация тестирования
Теория
Mock Service с помощью SOAP UI
Список открытых API