Підручник з тестування веб-служб: як тестувати? Навчайтеся на прикладі
Що таке WebService?
Веб-сервіси — це механізм або засіб зв’язку, за допомогою якого дві програми/машини обмінюватимуться даними незалежно від їх основної архітектури та технології.
Що таке тестування веб-служб?
Тестування веб-служб це тип тестування програмного забезпечення, який перевіряє веб-сервіси. Метою тестування веб-служб є перевірка функціональності, надійності, продуктивності та безпеки API (інтерфейсу прикладної програми). У деяких випадках тестування веб-сервісу схоже на модульне тестування. Ви можете перевірити веб-сервіс вручну або створити власний код автоматизації або скористатися готовим інструментом автоматизації, наприклад Postman.
Навіщо потрібен WebService?
Загалом програмні додатки розробляються для використання людьми, коли особа надсилає запит програмній службі, яка, у свою чергу, повертає відповідь у форматі, зрозумілому людині.
У сучасну епоху технологій, якщо ви хочете створити програмне забезпечення, вам не потрібно створювати все з нуля. Існує багато доступних готових служб, які можна підключити до своєї програми, і ви можете почати надавати ці послуги у своїй програмі.
Наприклад, ви хочете відобразити інформацію про прогноз погоди, вам не потрібно збирати, обробляти та відтворювати дані у своїй програмі. Ви можете придбати послуги у людей, які вже добре зарекомендували себе в обробці та публікації таких даних.
Веб-сервіси дозволяють нам робити такі реалізації.
Як приклад розглянемо наступний веб-сервіс
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Це дає акційну вартість для компанії.
Давайте знайдемо ціну акцій Google (Символ: GOOG)
Відповідь XML надає ціну акцій.
Ця веб-служба може бути викликана програмним додатком за допомогою протоколу SOAP або HTTP.
Протоколи веб-служб
Веб-сервіси можна реалізувати різними способами, але наступні два є популярними підходами реалізації.
- SOAP (Простий протокол доступу до об’єктів)
- REST (представницька архітектура передачі стану)
SOAP
SOAP — це стандартний протокол, визначений стандартом W3C для надсилання й отримання запитів і відповідей веб-служб.
SOAP використовує Формат XML для надсилання та отримання запиту і, отже, дані не залежать від платформи. Повідомленнями SOAP обмінюються між додатками-постачальниками та додатками-одержувачами в межах SOAP-конвертів.
Оскільки SOAP використовує простий транспортний протокол http, його повідомлення не блокуються брандмауерами.
REST
REST означає передачу репрезентативного стану; це архітектура, яка зазвичай працює через HTTP. Стиль REST підкреслює взаємодію між клієнтами та службами, яка покращується завдяки наявності обмеженої кількості операцій. REST є альтернативою SOAP (простий протокол доступу до об’єктів), і замість використання XML для запиту REST у деяких випадках використовує просту URL-адресу. На відміну від SOAP, програми RESTFUL використовують вбудовані заголовки HTTP для передачі метаінформації.
Існують різні коди, які REST використовує, щоб визначити, чи має користувач доступ до API, наприклад, код 200 або 201 вказує на успішну взаємодію з тілом відповіді, тоді як 400 вказує на неправильний запит або URI запиту не відповідає API в системі. Усі параметри запитів API та параметри методів можна надіслати через обидва POST or GET змінні.
Rest API підтримує формат XML і JSON для тестування API WebServices. Зазвичай йому надають перевагу для Mobile і веб-програм, оскільки це робить програму швидшою та плавнішою
WSDL
WSDL (веб-сервіси Description Language) — це мова на основі XML, яка використовуватиметься для опису послуг, які пропонує веб-служба.
WSDL описує всі операції, які пропонує певний веб-сервіс у форматі XML. Він також визначає, як можна викликати послуги, тобто яке вхідне значення ми маємо надати та який буде формат відповіді, яку він збирається створити для кожного виду послуги.
Як перевірити веб-сервіс?
Щоб перевірити веб-сервіс, ви можете
- Перевірте вручну
- Створіть власний код автоматизації
- Використовуйте готовий інструмент автоматизації, наприклад SoapUI.
Тестування автоматизації веб-служб включає наступні кроки:
- Розуміння файлу WSDL
- Визначте операції, які забезпечує конкретний веб-сервіс
- Визначте формат запиту XML, який нам потрібно надіслати
- Визначте формат XML відповіді
- Використання інструменту або написання коду для надсилання запиту та перевірки відповіді
Припустімо, ми хочемо перевірити веб-сервіс, який надає інструмент конвертації валют. Це поточні курси обміну між валютами різних країн. Цю послугу ми можемо використовувати в наших програмах для конвертації значень з однієї валюти в іншу валюту.
Тепер розглянемо описані вище кроки
Крок 1–4: Розуміння WSDL і визначення операцій і форматів XML
Валюта Convertor Файл WSDL можна побачити @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
), яка надасть інформацію про валюту Convertor методи веб-сервісу, які він підтримуватиме, параметр, який нам потрібно передати, і тип параметрів… тощо.
Крок 5: використання інструменту або написання коду для надсилання запиту та перевірки відповіді
Існує багато інструментів WebService Test, доступних для перевірки веб-сервісу SOAP. SoapUI є одним із популярних Інструмент API який допоможе нам перевірити веб-сервіси SOAP. Насправді ви можете використовувати будь-яку мову програмування, яка здатна надсилати запит XML до програми постачальника веб-послуг через http і здатна аналізувати та перевіряти XML відповіді на очікуваний результат. У цьому навчальному посібнику з тестування веб-служб ми перевіримо веб-службу
- використання Java
- Використання SoapUI
ЧАСТИНА 1) Тестування WebService за допомогою Apache Axis2 API (Java).
Зазвичай веб-служба приймає запит і надсилає відповідь у форматі XML.
Проект Apache Axis2 API є a Java API реалізації, який використовуватиметься для створення веб-служб як на стороні сервера (постачальник послуг), так і на стороні клієнта (споживач послуг).
Axis2 може надсилати повідомлення SOAP, отримує та обробляє повідомлення SOAP. Ми можемо написати маленький Java програма за допомогою API для створення веб-сервісу. Axis2 згенерує WSDL Java програма, яка використовуватиметься для передачі послуг, які пропонує веб-служба. Ми можемо використовувати той самий Axis2 для створення Java клас (заглушка) з файлу WSDL, який ми можемо використовувати як клієнтську програму для створення запиту веб-сервісу, надсилання запиту до кінцевої точки сервісу та обробки відповіді.
- В основному ми створимо простий Java програма, у якій ми створимо екземпляр класу-заглушки.
- Використовуючи заглушку, ми викличемо метод запиту, передавши всю необхідну інформацію.
- Програма-заглушка перетворить цей запит у формат запиту XML і надішле його кінцевій точці служби, яка прочитає запит, обробить запит і надішле відповідь у форматі XML.
- Відповідь XML буде перетворено на Java клас за заглушкою та повернувся до фактичної програми.
Давайте детально розглянемо описані вище кроки
Крок a) Завантажте API axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi & Установіть змінну середовища "AXIS2_HOME"
Крок b) Створіть папку для зберігання всіх згенерованих артефактів
Наприклад: C:\Axis\Projects\CurrencyConverter
Крок c) Відкрийте командний рядок і перейдіть до структури папок, де ви хочете створити артефакти, і виконайте наступну команду, яка створить заглушки
%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s
Крок d) Після успішного виконання команди ви побачите папку з необхідними файлами.
Крок e) На наступному кроці цього підручника з тестування веб-сервісів ми маємо створити клієнтську програму, за допомогою якої ми будемо надсилати фактичний запит, використовуючи згенеровані заглушки. Відкрийте затемнення та створіть нове Java проект і виберіть папку, яку ми створили вище.
Крок f) Додайте всі файли, пов’язані з axis2, до шляху збірки проекту, який буде там у папці lib папки програмного забезпечення axis2
(наприклад: C:\Axis\axis2-1.6.2\lib)
Крок g) Створіть новий Java клас (наприклад: клієнт.Java) і створити об’єкт-заглушку. За допомогою об’єкта-заглушки ми можемо викликати всі підтримувані методи конкретного WebService.
Client.Java Program package org.apache.axis2.currencyconvertor; import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate; import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse; import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency; public class Client { public static void main(Java.lang.String args[]) { try { //Create the stub object by passing the service end point url CurrencyConvertorStub stub = new CurrencyConvertorStub("http://www.webservicex.net/CurrencyConvertor.asmx"); //ConversionRate is the class which we have to use mention the from and to currency //ConversionRate object will be the parameter for the conversionRate operation ConversionRate conversionRate = new ConversionRate(); conversionRate.setFromCurrency(Currency.USD); conversionRate.setToCurrency(Currency.INR); //Create the ConversionRateResponse object, which is going to be used to catch the response //call the conversionRate service using the stub object ConversionRateResponse conversionRateResponse = stub.conversionRate(conversionRate); //We can use the conversionRateResponse object to retrieve the response of the ConversionRate Service System.out.println("Conversion Rate from INR to USD : " + conversionRateResponse.getConversionRateResult()); } catch (Exception e) { e.printStackTrace(); } } }
ЧАСТИНА 2) Як перевірити за допомогою веб-сервісу SoapUI
У SoapUI
- Перейдіть до «Файл» > «Новий мильний проект».
- Введіть ім’я проекту та розташування WSDL URI
- натисніть OK
- Розгорніть перший запит і двічі клацніть на «Запит1». Він відобразить запит SOAP у форматі XML.
- Введіть З валюти та До валюти
- Натисніть кнопку надіслати
- Відповідь XML відображатиметься на правій бічній панелі.
Як ви можете зробити висновок, використання таких інструментів WebService Test, як SoapUI, прискорює ваші зусилля з автоматизації тестування Web Services. Тому SoapUi буде зосереджено на нашому вивченні в наступних посібниках.
Підсумки
- Програмні додатки спілкуються та обмінюються даними один з одним за допомогою WebService
- SOAP і REST є двома популярними протоколами для створення WebService
- SOAP підтримує обмін даними на основі XML
- REST підтримує XML, Json або обмін даними за простою URL-адресою для тестування API WebServices.
- WSDL — це мова на основі XML, яка використовуватиметься для опису послуг, які пропонує веб-служба. SOAP визначається за допомогою WSDL.
-
Ви можете перевірити WebService
- Створіть власний код. Наприклад, використовуйте Axis2 API для Java
- Використовуйте інструменти автоматизації тестування WebService, наприклад SoapUI
- Інструменти автоматизації, такі як SoapUI, дадуть поштовх вашим зусиллям щодо автоматизованого тестування веб-служб, потребуватимуть менше зусиль у кодуванні порівняно зі створенням власного коду за допомогою Axis2 API
FAQ
Дізнатися більше про Тестування веб-API
Цей навчальний посібник із тестування веб-служб став можливим завдяки внеску пана Нарендера Редді Нукали