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](img/soapui_mockservice_00100.jpg)
Введите имя проекта
![SOAP UI Enter Project Name изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00102.jpg)
New Rest Mock Service
![SOAP UI New Rest Mock Service изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00104.jpg)
Укажите имя MockService
![SOAP UI Specify name of MockService изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00106.jpg)
Add new mock action
![SOAP UI Add new mock action изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00108.jpg)
Введите путь и выберите метод GET
![SOAP UI Enter Resource path изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00110.jpg)
New MockResponse
![SOAP UI New MockResponse изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00112.jpg)
Введите имя нового ответа
![SOAP UI Enter name of new MockResponse изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00114.jpg)
Скопируйте 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](img/soapui_mockservice_00116.jpg)
Правой кнопкой мыши кликните на 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](img/soapui_mockservice_00118.jpg)
Создайте новый mock action, имя оставьте старое «/bicycle» а тип измените на
POST
вместо GET.
Создайте новый MockResponse и назовите его «addBicycle»
Скопируйте json и вставьте в тело ответа
{"key":12041961}
![SOAP UI изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00120.jpg)
Создайте новый mock action типа GET и назовите его «/incorrectep» а новый MockResponse «400» Измените Http Status Code на 400 – Bad Request
![SOAP UI Http Status Code 400 - Bad Request изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00122.jpg)
Обратите внимание, что сервис BicycleService использует порт 8080
![SOAP UI Http Status Code 400 - Bad Request изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00124.jpg)
Запустите BicycleService нажав на зелёный треугольник
![SOAP UI start REST Mock service изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00126.jpg)
У нас есть четыре сценария
Используем Postman чтобы протестировать их
POST на http://localhost:8080/bicycle
Должен вернуть key 12041961
![SOAP UI изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00128.jpg)
GET на http://localhost:8080/bicycle
Должен вернуть список велосипедов
![SOAP UI изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00130.jpg)
GET на http://localhost:8080/bicycle/1
Должен вернуть первый велосипед
![SOAP UI изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00132.jpg)
GET на http://localhost:8080/incorrectep
Должен вернуть пустой ответ и Http Status 400 Bad Request
![SOAP UI изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00134.jpg)
Dynamic Response
Чтобы заменить статичный ответ 12041961 на динамический в запросе POST на /bicycle заменим 12041996 на ${variable} и в script добавим следующий код:
context.setProperty("variable" ,Math.random()*100000000000000000)
![SOAP UI script изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00136.jpg)
Чтобы протестировать отправим несколько запросов из Postman и проверим изменяется ли ответ
![Postman request изображение с сайта www.andreyolegovich.ru](img/soapui_mockservice_00138.jpg)
Тестирование ПО | |
Где учиться на тестировщика | |
Учебник по тестированию API | |
Тестирование API | |
Автоматизация тестирования | |
Теория | |
Mock Service с помощью SOAP UI | |
Список открытых API |