Що таке WebService?
Веб-служби - це механізм або засіб комунікації, за допомогою якого дві програми / машини обмінюються даними незалежно від підкресленої архітектури та технології.
Що таке тестування веб-служб?
Тестування веб-служб - це тип тестування програмного забезпечення, який перевіряє веб-служби. Метою тестування веб-служб є перевірка функціональності, надійності, продуктивності та безпеки API (інтерфейсу прикладних програм). Тестування веб-служб у деяких випадках подібне до модульного тестування. Ви можете протестувати веб-службу вручну або створити власний код автоматизації або скористатися готовим інструментом автоматизації, таким як Postman.
Навіщо потрібен WebService?
Загалом, програмні додатки розробляються для споживання людьми, коли людина надсилає запит службі програмного забезпечення, яка в свою чергу повертає відповідь у зручному для читання форматі.
У сучасну епоху технологій, якщо ви хочете створити програмний додаток, вам не потрібно будувати все з нуля. Доступно багато готових служб, які ви можете підключити до своєї програми, і ви можете почати надавати ці послуги у своїй програмі.
Наприклад, ви хочете відобразити інформацію про прогноз погоди, яка вам не потрібна для збору, обробки та відтворення даних у вашій програмі. Ви можете придбати послуги у людей, які вже добре зарекомендували себе в обробці та публікації подібних даних.
Веб-сервіси дозволяють нам робити подібні реалізації.
Як приклад, розглянемо наступний WebService
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Це дає вартість акцій компанії.
Давайте знайдемо ціну акцій для Google (Символ: GOOG)
Відповідь XML дає ціну акцій.
Цю Веб-службу може викликати Програмне забезпечення, використовуючи протокол SOAP або HTTP.
Протоколи веб-служб
Веб-служби можуть бути реалізовані різними способами, але наступні два є популярними підходами до реалізації.
- SOAP (Простий протокол доступу до об’єктів)
- REST (представницька архітектура державного трансферу)
МИЛО
SOAP - це стандартний протокол, визначений стандартом W3C, для надсилання та отримання запитів та відповідей веб-служб.
SOAP використовує формат XML для надсилання та отримання запиту, а отже, дані є незалежними від платформи даними. Повідомлення SOAP обмінюються між програмами-постачальниками та програмами-одержувачами в межах конвертів SOAP.
Оскільки SOAP використовує простий транспортний протокол http, його повідомлення не блокуються брандмауерами.
Відпочинок
REST означає репрезентативний державний трансфер; це архітектура, яка зазвичай працює над HTTP. Стиль REST підкреслює взаємодію між клієнтами та послугами, що покращується завдяки обмеженій кількості операцій. REST є альтернативою SOAP (Простий протокол доступу до об'єктів), і замість використання XML для запиту REST використовує просту URL-адресу в деяких випадках. На відміну від SOAP, додатки RESTFUL використовують HTTP-заголовки для передачі метаінформації.
Існують різні коди, за допомогою яких REST визначає, чи має користувач доступ до API чи ні, наприклад код 200 або 201 вказує на успішну взаємодію з тілом відповіді, тоді як 400 вказує на поганий запит або URI запиту не відповідає API в системі. Усі параметри запиту API та параметри методу можуть бути надіслані через змінні POST або GET .
Rest API підтримує як XML, так і формат JSON для тестування API WebServices. Зазвичай його віддають перевагу мобільним та веб-програмам, оскільки він робить програму швидшою та плавнішою
WSDL
WSDL (мова опису веб-служб) - це мова, заснована на XML, яка буде використовуватися для опису послуг, що пропонуються веб-службою.
WSDL описує всі операції, пропоновані певною веб-службою, у форматі XML. Він також визначає, як можна викликати послуги, тобто яке вхідне значення ми повинні надати і яким буде формат відповіді, який він збирається генерувати для кожного виду послуги.
Як протестувати веб-службу?
Ви можете перевірити веб-сервіс
- Тестуйте вручну
- Створіть свій власний код автоматизації
- Використовуйте готовий інструмент автоматизації, такий як SoapUI.
Тестування автоматизації веб-служб передбачає наступні кроки -
- Зрозумійте файл WSDL
- Визначте операції, які надає певна веб-служба
- Визначте формат запиту XML, який нам потрібно надіслати
- Визначте формат відповіді XML
- Використання інструменту або написання коду для надсилання запиту та перевірки відповіді
Припустимо, ми хочемо протестувати веб-службу, яка надає можливість конвертації валют. Це буде поточний курс обміну між валютою різних країн. Цю послугу ми можемо використовувати в наших додатках для перетворення значень з однієї валюти в іншу.
Тепер давайте розглянемо наведені вище кроки
Крок 1-4: Розуміння WSDL та визначення операцій та форматів XML
Файл WSDL конвертора валют можна побачити @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl), який надасть інформацію про методи веб-служби конвертора валют, які він підтримуватиме, параметр, який нам потрібно передати, і тип параметрів
... тощоКрок 5: Використання інструменту або написання коду для надсилання запиту та перевірки відповіді
Для тестування веб-служби SOAP доступно безліч інструментів WebService Test. SoapUI - це один з популярних інструментів API, який допоможе нам протестувати веб-сервіси SOAP. Насправді ви можете використовувати будь-яку мову програмування, яка здатна відправляти запит XML до програми постачальника веб-послуг через http і може аналізувати та перевіряти відповідь XML на очікуваний результат. У цьому посібнику з тестування веб-служб ми перевіримо WebService
- Використання Java
- Використання SoapUI
ЧАСТИНА 1) Тестування WebService за допомогою API Apache Axis2 (Java).
Як правило, веб-служба приймає запит і надсилає відповідь у форматі XML.
Проект Apache Axis2 API - це API реалізації Java, який буде використовуватися для створення веб-служб як на стороні сервера (постачальник послуг), так і на стороні клієнта (споживач послуг).
Axis2 здатний надсилати SOAP-повідомлення та отримувати та обробляти SOAP-повідомлення. Ми можемо написати невелику програму Java за допомогою API для створення веб-служби. Axis2 генерує WSDL з програми Java, яка буде використовуватися для передачі послуг, пропонованих веб-службою. Ми можемо використовувати ту саму Axis2 для генерації класу Java (заглушки) з файлу WSDL, який ми можемо використовувати як програму-клієнт для генерації запиту веб-служби, відправки запиту до кінцевої точки служби та обробки відповіді.
- В основному ми створимо просту програму Java, в якій створимо екземпляр класу заглушки.
- За допомогою заглушки ми застосуємо метод запиту, передавши всю необхідну інформацію.
- Stub програма перетворить цей запит у формат запиту XML і надішле йому кінцеву точку служби, яка прочитає запит, обробить запит і надішле відповідь у форматі XML.
- Відповідь XML буде перетворено в клас Java за допомогою заглушки і повернуто до фактичної програми.
Давайте детально розглянемо наведені вище кроки
Крок а) Завантажте API ось2 @ 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
Крок г) Після успішного запуску команди ви побачите папку з необхідними файлами.
Крок e) На наступному кроці цього підручника з тестування веб-служб ми повинні створити програму-клієнт, за допомогою якої ми надішлемо фактичний запит за допомогою сформованих заглушок. Відкрийте eclipse і створіть новий проект Java і виберіть папку, яку ми створили вище.
Крок f) Додайте всі пов'язані з осью 2 банки до шляху побудови проекту, який буде там у папці lib папки програм ось 2
(наприклад: C: \ Axis \ ось2-1.6.2 \ lib)
Крок g) Створіть новий клас Java (наприклад: Client.Java) та створіть екземпляр об'єкта-заглушки. Використовуючи об'єкт заглушки, ми можемо викликати всі підтримувані методи конкретного WebService.
Клієнт. Програма Javaпакет org.apache.axis2.currencyconvertor;імпорт org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;імпорт org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;імпорт org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;клієнт публічного класу {public static void main (Java.lang.String args []) {спробуй {// Створімо об'єкт-заглушку, передавши URL-адресу кінцевої точки службиCurrencyConvertorStub stub = новий CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate - це клас, який ми повинні використовувати, згадуючи від і до валюти// Об'єкт ConversionRate буде параметром для операції convertRateConversionRate conversionRate = новий ConversionRate ();conversionRate.setFromCurrency (Currency.USD);conversionRate.setToCurrency (Currency.INR);// Створюємо об’єкт ConversionRateResponse, який буде використовуватися для збору відповіді// викликаємо службу conversionRate за допомогою об'єкта заглушкиConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// Ми можемо використовувати об’єкт convertRateResponse для отримання відповіді служби ConversionRateSystem.out.println ("Коефіцієнт конверсії з INR в USD: + conversionRateResponse.getConversionRateResult ());} catch (виняток e) {e.printStackTrace ();}}}
ЧАСТИНА 2) Як протестувати за допомогою веб-служби SoapUI
У SoapUI
- Перейдіть у меню Файл> Новий проект мила
- Введіть назву проекту та місце розташування URI WSDL
- Клацніть OK
- Розгорніть перший запит і двічі клацніть на «Запит1». Він відобразить запит SOAP у форматі XML.
- Введіть від валюти до валюти
- Клацніть на кнопку подати
- XML відповіді відображатиметься на правій бічній панелі.
Як ви могли дійти висновку, використання інструментів тестування WebService, таких як SoapUI, прискорює ваші зусилля щодо автоматизації тестування веб-служб. Отже, SoapUi буде фокусом нашого навчання в наступних підручниках.
Резюме
- Програмні програми обмінюються даними та обмінюються даними за допомогою WebService
- SOAP та REST - це 2 популярні протоколи для створення WebService
- SOAP підтримує обмін даними на основі XML
- Підтримка REST підтримує XML, Json або обмін даними за допомогою простої URL-адреси для тестування API WebServices.
- WSDL - це мова, заснована на XML, яка буде використовуватися для опису послуг, що пропонуються веб-службою. SOAP визначається за допомогою WSDL.
- Ви можете перевірити WebService
- Створіть власний код. Наприклад, використовуйте Axis2 API для Java
- Використовуйте інструменти автоматизації тестів WebService, такі як SoapUI
- Інструменти автоматизації, такі як SoapUI, розпочнуть роботу з тестування автоматизації веб-служб, вимагатимуть менших зусиль кодування порівняно зі створенням власного коду за допомогою API Axis2
FAQ
Яка різниця між WebService та WebAPI?
Веб-сервіс |
Веб-API |
|
|
|
|
|
|
|
|
Дізнайтеся більше про тестування веб-API
Цей підручник з тестування веб-служб став можливим завдяки внеску пана Нарендера Редді Нукали