Впродовж останніх років спостерігається тенденція до тестування API. Для успішної реалізації тестування API виникає потреба в пошуку набору інструментів, які задовольняють конкретним вимогам. На сьогоднішній день існує значний перелік інструментів тестування API: SoapUI, Postman, Katalon Studio, Tricentis Tosca, Apigee, JMeter, Rest-Assured, Assertible, Karate DSL, але найбільш популярними з них вважаються перші 3: SoapUI, Postman і Katalon Studio. Про один з них, а саме про SoapUI, і буде мова в даній статті.
Використання SoapUI в тестуванні
- 10.02.2022
- Опубліковано: Admin

Що таке SoapUI та пов’язані з ним терміни
SOAP (Simple Object Access Protocol) – це протокол для обміну інформацією в розподіленому середовищі. Даний протокол може використовуватися з будь-яким протоколом прикладного рівня: SMTP, FTP, HTTP, HTTPS та ін.
SoapUI – це інструмент з відкритим вихідним кодом для тестування web-сервісів (API), який представляє собою кросплатформний клієнтський додаток, реалізований на мові Java та Groovy (доповнення Java з можливостями Python, Ruby і Smalltalk) завдяки чому працює на більшості операційних систем, зокрема найбільш популярних: Windows, MacOS, Linux.
Його можна інтегрувати з такими популярними середовищами розробки та автоматизованого тестування, як IDE IntelliJ, NetBeans, Eclipse. SoapUI є пропрієтарним ПЗ, його основний функціонал є безкоштовним, але є також платна версія програми SoapUI Pro, яка розширює можливості роботи з плагінами, формуванням звітів та перехопленням трафіку.
SoapUI можна використовувати для тестування продуктивності, сумісності, функціонального, регресійного тестування та ін.
Що таке API та для чого тестується
API (Application Programming Interface) – набір класів, процедур, функцій, структур та констант, які надаються додатком, бібліотекою або сервісом для взаємодії та використання зовнішніми програмними продуктами. Тобто, іншими словами, API дає можливість використовувати чужі напрацювання для власних цілей.
API застосовується в тих випадках, коли небажана або неможлива безпосередня інтеграція з вихідним додатком. Яскравим прикладом є API банку, коли фінансова установа надає доступ для публічного використання та розміщення на своїх сервісах (сайтах чи додатках), наприклад, курсу валют. Тобто для того, щоб слідкувати за курсом валют ПриватБанку, Вам не потрібно встановлювати спеціальні додатки, а достатньо лише надіслати декілька запитів для отримання інформації, яка буде розміщена на вашому сайті або в додатку.
Приклад публічного API ПриватБанку
Види запитів, які запити тестуються за допомогою SoapUI
Види запитів класифікуються в залежності від використовуваного API. В SoapUI є два способи створення запитів:
- створення SOAP-проєкту;
- REST-проєкт.
Порівнювати їх майже неможливо, оскільки SOAP – протокол обміну повідомленнями, свого роду формат того, яким чином будуть відправлятися повідомлення, тоді як REST – підхід до архітектури мережевих протоколів. Проте важливо бачити принципову різницю між цими двома поняттями.
SOAP |
REST |
використовує тільки XML формат | використовує Json та XML формати |
працює з будь-яким протоколом
прикладного рівня: SMTP, FTP, HTTP, HTTPS, POP3 |
працює тільки по HTTP/HTTPS протоколам |
візуально більш привабливий синтаксис | більш гнучкий та простий у використанні |
має власну безпеку – WS-безпека | менш безпечний у порівнянні |
більш вимогливий до великого об’єму
ресурсів та пропускної здатності |
невибагливий до ресурсів, мінімуму достатньо |
Порівняльна таблиця SOAP та REST
Конкретно в SoapUI для архітектури REST існує 5 типів запитів: GET, POST, PUT, PATCH, DELETE. При цьому для SOAP немає конкретного переліку запитів. Справа у тому, що для конкретного сервісу (сайту або додатка), запити пишуться розробником та орієнтовані на специфіку продукту. Дані запити пишуться у так званих WSDL-файлах.
WSDL-файл (Web Services Description Language) – це файл формату XML з описом доступу до функцій веб-сервісу, необхідний для обробки запитів до відповідної API. Деякі WSDL-файли з прикладами запитів можна знайти та завантажити з Інтернету.
Інтерфейс SoapUI
Інтерфейс SoapUI є досить лаконічним та простим. Він представляє собою стандартну панель інструментів та основні функції для створення проєктів.
Інтерфейс SoapUI
Створення SOAP-проєкту
Для того, щоб створити новий проєкт SOAP, потрібно обрати відповідну опцію «SOAP» в головному меню, після чого відкриється наступне діалогове вікно. В ньому необхідно ввести назву проєкту і додати посилання або назву файлу вихідного WSDL-файлу.
Створення SOAP-проєкту
У даному випадку було взято WSDL-файл по роботі зі списком країн, після чого в проєкті з’явився список скриптів із запитами до веб-сервісу. Даний набір скриптів може бути використаний, наприклад, для цілей логістичної компанії.
Доданий WSDL-файл зі скриптами
Розглянемо приклад пошуку ISO-коду за назвою певної країни. Для виконання даного запиту необхідно відкрити 2 скрипта: CountryISOCode (крок 1) і ListOfCountryNamesByCode (крок 2). Запустити на виконання запит ListOfCountryNamesByCode, після чого відобразиться список країн з ISO-кодами (крок 3). Припустимо, що нам невідомі ISO, є тільки назви країн. Для того, щоб з’ясувати до якої саме країни належить ISO, потрібно скопіювати назву країни і перейти до запиту CountryISOCode, а саме до рядка з невідомим параметром, який нам потрібен (крок 4).
Вхідні параметри для запиту на пошук ISO-коду по назві країни
Візьмемо, наприклад, країну «United Arab Emirates» та виконаємо скрипт CountryISOCode. В результаті отримаємо у відповідь ISO-код країни.
Результат запиту пошуку ISO за назвою країни
Створення REST-проєкту
Для створення нового проєкту REST необхідно натиснути відповідну опцію «REST» у головному меню або кнопку «Endpoint Explorer». У новому діалоговому вікні можна обрати метод запиту, а також потрібно додати посилання на файл Json.
Створення REST-запиту в SoapUI
Для наглядної демонстрації прикладу повернемося до відкритої API ПриватБанку, наведеної вище в даній статті. З офіційного сайту можна скопіювати посилання на файл Json і виконати запит в SoapUI.
API ПриватБанку
REST-запит до API ПриватБанку на отримання поточного курсу валют
Як бачимо, SoapUI є досить потужним інструментом тестування API. Знання принципів виконання запитів за допомогою даного інструменту відкривають великі можливості в автоматизованому тестуванні. Безумовно, SoapUI має ряд переваг порівняно з аналогами, такими як Postman, Katalon Studio, Apigee та є досить надійним у плані безпеки.
