Что такое веб-сервис?
Веб-сервисы — это механизм или средство связи, посредством которого два приложения / машины будут обмениваться данными независимо от их архитектуры подчеркивания и технологии.
Что такое тестирование веб-службы?
Тестирование веб-сервисов — это тип тестирования программного обеспечения, который проверяет веб-сервисы. Целью тестирования веб-служб является проверка функциональности, надежности, производительности и безопасности API (интерфейса прикладных программ). Тестирование веб-службы в некоторых случаях аналогично тестированию модулей. Вы можете протестировать Web-сервис вручную или создать свой собственный код автоматизации или использовать готовый инструмент автоматизации, такой как Postman.
Зачем нужен веб-сервис?
В общем, программные приложения разрабатываются для использования людьми, когда человек отправляет запрос в службу программного обеспечения, которая, в свою очередь, возвращает ответ в удобочитаемом для человека формате.
В современную технологическую эпоху, если вы хотите создать программное приложение, вам не нужно создавать все с нуля. Существует множество готовых сервисов, которые вы можете подключить к своему приложению, и вы можете начать предоставлять эти сервисы в своем приложении.
Например, вы хотите отображать информацию о прогнозе погоды, которая вам не нужна для сбора, обработки и отображения данных в вашем приложении. Вы можете купить услуги у людей, которые уже хорошо зарекомендовали себя в обработке и публикации такого рода данных.
Веб-сервисы позволяют нам делать такие реализации.
В качестве примера рассмотрим следующий 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 означает REpresentational State Transfer; это архитектура, которая обычно работает через HTTP. Стиль REST подчеркивает взаимодействия между клиентами и сервисами, которые улучшаются благодаря ограниченному количеству операций. REST является альтернативой SOAP (Simple Object Access Protocol), и вместо использования XML для запроса REST в некоторых случаях использует простой URL. В отличие от SOAP, приложения RESTFUL используют HTTP-заголовки для переноса метаинформации.
Существуют различные коды, которые REST использует для определения, имеет ли пользователь доступ к API или нет, код 200 или 201 указывает на успешное взаимодействие с телом ответа, в то время как 400 указывает на неверный запрос, или URI запроса не соответствует API в системе. Все параметры запроса API и параметры метода могут быть отправлены через переменные POST или GET .
Rest API поддерживает формат XML и JSON. Как правило, он предпочтителен для мобильных и веб-приложений, поскольку он делает работу приложений более быстрой и плавной.
WSDL
WSDL (язык описания веб-сервисов) — это язык на основе XML, который будет использоваться для описания сервисов, предлагаемых веб-сервисом.
WSDL описывает все операции, предлагаемые конкретным веб-сервисом в формате XML. Он также определяет, как могут быть вызваны сервисы, то есть какое входное значение мы должны предоставить и какой будет формат ответа, который он будет генерировать для каждого вида сервиса.
Как проверить веб-сервис?
Для тестирования веб-сервиса вы можете
- Тест вручную
- Создайте свой собственный код автоматизации
- Используйте готовый инструмент автоматизации, такой как SoapUI.
Тестирование WebService включает в себя следующие шаги:
- Понимать файл WSDL
- Определите операции, которые предоставляет конкретный веб-сервис
- Определите формат запроса XML, который нам нужно отправить
- Определить формат ответа XML
- Использование инструмента или написание кода для отправки запроса и проверки ответа
Предположим, мы хотим протестировать веб-сервис, который предоставляет средство конвертации валют. Это будут текущие курсы обмена между валютами разных стран. Этот сервис мы можем использовать в наших приложениях для преобразования значений из одной валюты в другую валюту.
Теперь давайте посмотрим на шаги выше
Шаг с 1 по 4: Понимание WSDL и определение операций и форматов XML
Файл WSDL Currency Convertor можно увидеть @ ( http://www.webservicex.net/CurrencyConvertor.asmx?wsdl ), который предоставит информацию о методах веб-службы Currency Convertor, которые он будет поддерживать, параметр, который нам нужно передать, и тип параметров… и т. д.
Шаг 5: Использование инструмента или написание кода для отправки запроса и проверки ответа
Для тестирования веб-сервисов доступно множество инструментов. SoapUI — один из популярных инструментов, который поможет нам протестировать веб-сервисы. Фактически вы можете использовать любой язык программирования, который способен отправлять XML-запрос приложению поставщика веб-услуг через http и может анализировать и проверять XML-ответ в соответствии с ожидаемым результатом. В нашем случае мы будем тестировать WebService
- Использование Java
- Использование SoapUI
ЧАСТЬ 1) Тестирование WebService с использованием Apache Axis2 API (Java).
Обычно веб-служба принимает запрос и отправляет ответ в формате XML.
Проект API Apache Axis2 — это API реализации Java , который будет использоваться для создания веб-сервисов как на стороне сервера (поставщик услуг), так и на стороне клиента (потребитель услуг).
Axis2 может отправлять сообщения SOAP и получать и обрабатывать сообщения SOAP. Мы можем написать небольшую Java-программу, используя API для создания веб-сервиса. Axis2 сгенерирует WSDL из Java-программы, которая будет использоваться для передачи сервисов, предлагаемых веб-сервисом. Мы можем использовать тот же Axis2 для генерации Java-класса (заглушки) из файла WSDL, который мы можем использовать в качестве клиентской программы для генерации запроса веб-сервиса, отправки запроса конечной точке сервиса и обработки ответа.
- По сути, мы создадим простую Java-программу, в которой будем создавать экземпляр класса-заглушки.
- Используя заглушку, мы вызовем метод запроса, передав всю необходимую информацию.
- Программа-заглушка преобразует этот запрос в формат запроса XML и отправляет ему конечную точку службы, которая считывает запрос, обрабатывает запрос и отправляет ответ в формате XML.
- Ответ XML будет преобразован в класс Java заглушкой и возвращен в реальную программу.
Давайте посмотрим на шаги выше в деталях
Шаг а) Загрузите API-интерфейс axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi и установите переменную среды AXIS2_HOME.
Шаг б) Создайте папку для хранения всех сгенерированных артефактов
Пример: 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) После успешного выполнения команды вы увидите папку с необходимыми файлами.
Шаг д) Далее мы должны создать клиентскую программу, с помощью которой мы будем отправлять фактический запрос, используя сгенерированные заглушки. Откройте затмение и создайте новый проект Java и выберите папку, которую мы создали выше.
Шаг f) Добавьте все файлы jar, связанные с axis2, в путь сборки проекта, который будет находиться в папке lib в папке программного обеспечения axis2
(например: C: \ Axis \ axis2-1.6.2 \ lib)
Шаг g) Создайте новый класс Java (например: Client.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 для тестирования WebService
В SoapUI
- Перейдите в Файл> Новый проект Soap
- Введите Имя проекта и расположение URI WSDL
- Нажмите ОК
- Разверните первый запрос и дважды щелкните «Запрос1». Он отобразит запрос SOAP в формате XML.
- Введите валюту от и до валюты
- Нажмите на кнопку отправить
- Ответ XML будет отображаться в правой части окна.
Как вы можете заключить, использование таких инструментов, как SoapUI, ускоряет ваши усилия по тестированию WebService. Поэтому SoapUi будет центром нашего обучения в последующих уроках.
Резюме
- Программные приложения взаимодействуют и обмениваются данными друг с другом с помощью веб-сервиса
- SOAP и REST — 2 популярных протокола для создания веб-сервиса
- SOAP поддерживает обмен данными на основе XML
- Поддержка REST XML, Json или обмен данными в простом URL.
- WSDL — это язык на основе XML, который будет использоваться для описания сервисов, предлагаемых веб-сервисом. SOAP определяется с использованием WSDL.
-
Для тестирования WebService вы можете
- Создайте свой собственный код. Например, используйте Axis2 API для Java
- Используйте инструменты автоматизации тестирования WebService, такие как SoapUI
- Инструменты автоматизации, такие как SoapUI, ускорят ваши усилия по тестированию, потребуют меньше усилий по написанию кода по сравнению с созданием собственного кода с помощью Axis2 API
Часто задаваемые вопросы
В чем разница между WebService и WebAPI?
Веб-сервис |
Веб-API |
|
|
|
|
|
|
|
|
Узнайте больше о тестировании веб-API
Это руководство стало возможным благодаря участию г-на Нарендера Редди Нукала