Учебное пособие по тестированию веб-сервисов: как тестировать? Учитесь на примере

Что такое WebService?

Веб-службы - это механизм или средство связи, посредством которого два приложения / машины будут обмениваться данными независимо от их основной архитектуры и технологии.

Что такое тестирование веб-сервисов?

Тестирование веб-служб - это тип тестирования программного обеспечения, при котором проверяются веб-службы. Целью тестирования веб-служб является проверка функциональности, надежности, производительности и безопасности API (интерфейса прикладных программ). В некоторых случаях тестирование веб-служб похоже на модульное тестирование. Вы можете протестировать веб-сервис вручную или создать свой собственный код автоматизации или использовать готовый инструмент автоматизации, например Postman.

Зачем нужен WebService?

Как правило, программные приложения разрабатываются для использования людьми, когда человек отправляет запрос программной службе, которая, в свою очередь, возвращает ответ в удобочитаемом формате.

В современную эпоху технологий, если вы хотите создать программное приложение, вам не нужно создавать все и вся с нуля. Доступно множество готовых сервисов, которые вы можете подключить к своему приложению, и вы можете начать предоставлять эти сервисы в своем приложении.

Например, вы хотите отображать информацию о прогнозе погоды, которую вам не нужно собирать, обрабатывать и отображать в вашем приложении. Вы можете купить услуги у людей, которые уже хорошо зарекомендовали себя в обработке и публикации таких данных.

Веб-сервисы позволяют нам делать такие реализации.

В качестве примера рассмотрим следующий WebService

http://www.webservicex.net/stockquote.asmx?op=GetQuote

Это дает стоимость акций компании.

Найдем цену акций Google (символ: GOOG)

В ответе XML указана цена акции.

Этот веб-сервис может быть вызван программным приложением с использованием протокола SOAP или HTTP.

Протоколы веб-сервисов

Веб-службы могут быть реализованы по-разному, но следующие два являются наиболее популярными подходами к реализации.

  1. SOAP (простой протокол доступа к объектам)
  2. REST (архитектура передачи репрезентативного состояния)

МЫЛО

SOAP - это стандартный протокол, определенный стандартом W3C для отправки и получения запросов и ответов веб-сервисов.

SOAP использует формат XML для отправки и получения запроса, и, следовательно, данные не зависят от платформы. Обмен сообщениями SOAP между приложениями-провайдерами и принимающим приложением происходит внутри оболочки SOAP.

Поскольку SOAP использует простой транспортный протокол http, его сообщения не блокируются межсетевыми экранами.

ОТДЫХ

REST означает REpresentational State Transfer; это архитектура, которая обычно работает по протоколу 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. Он также определяет, как могут вызываться сервисы, то есть какое входное значение мы должны предоставить и в каком формате будет ответ, который он будет генерировать для каждого вида сервиса.

Как протестировать веб-службу?

Чтобы протестировать веб-службу, вы можете

  1. Проверить вручную
  2. Создайте свой собственный код автоматизации
  3. Используйте готовый инструмент автоматизации, например SoapUI.

Тестирование автоматизации веб-служб включает следующие шаги:

  1. Понять файл WSDL
  2. Определить операции, которые предоставляет конкретная веб-служба
  3. Определяем формат XML-запроса, который нам нужно отправить
  4. Определите формат XML ответа
  5. Использование инструмента или написания кода для отправки запроса и проверки ответа

Предположим, мы хотим протестировать веб-службу, которая предоставляет средство конвертации валюты. Это будут текущие курсы конвертации между валютой разных стран. Эту услугу мы можем использовать в наших приложениях для конвертации значений из одной валюты в другую.

Теперь давайте посмотрим на шаги, указанные выше.

Шаг 1–4: понимание WSDL и определение операций и форматов XML

Файл WSDL Currency Convertor можно увидеть @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl), который предоставит информацию о методах веб-службы Currency Convertor, которые он будет поддерживать, параметре, который нам нужно передать, и тип параметров

… так далее

Шаг 5. Использование инструмента или написания кода для отправки запроса и проверки ответа

Для тестирования веб-службы SOAP доступно множество инструментов WebService Test. SoapUI - один из популярных инструментов API, который поможет нам тестировать веб-службы SOAP. Фактически, вы можете использовать любой язык программирования, который может отправлять XML-запрос в приложение поставщика веб-сервисов по http и может анализировать и проверять XML-ответ на предмет ожидаемого результата. В этом руководстве по тестированию веб-служб мы протестируем веб-службу.

  1. Использование Java
  2. Использование SoapUI

ЧАСТЬ 1) Тестирование WebService с использованием Apache Axis2 API (Java).

Обычно веб-служба принимает запрос и отправляет ответ в формате XML.

Проект Apache Axis2 API - это API реализации Java, который будет использоваться для создания веб-сервисов как на стороне сервера (поставщик услуг), так и на стороне клиента (потребитель услуг).

Axis2 может отправлять сообщения SOAP, а также получать и обрабатывать сообщения SOAP. Мы можем написать небольшую программу на Java, используя API для создания веб-службы. Axis2 сгенерирует WSDL из программы Java, которая будет использоваться для обмена услугами, предлагаемыми веб-службой. Мы можем использовать тот же Axis2 для генерации класса Java (заглушки) из файла WSDL, который мы можем использовать в качестве клиентской программы для генерации запроса веб-службы, отправки запроса в конечную точку службы и обработки ответа.

  1. По сути, мы создадим простую программу на Java, в которой будем создавать экземпляр класса-заглушки.
  2. Используя заглушку, мы вызовем метод запроса, передав всю необходимую информацию.
  3. Программа-заглушка преобразует этот запрос в формат XML-запроса и отправит его в конечную точку службы, которая прочитает запрос, обработает запрос и отправит ответ в формате XML.
  4. Ответ XML будет преобразован в класс Java с помощью заглушки и возвращен в фактическую программу.

Давайте подробно рассмотрим вышеперечисленные шаги.

Шаг a) Загрузите Axis2 API @ 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) После успешного выполнения команды вы увидите папку с необходимыми файлами.

Шаг e) На следующем этапе этого руководства по тестированию веб-служб мы должны создать клиентскую программу, через которую мы будем отправлять фактический запрос, используя сгенерированные заглушки. Откройте eclipse, создайте новый проект Java и выберите папку, которую мы создали выше.

Шаг f) Добавьте все jar-файлы, связанные с axis2, в путь сборки проекта, который будет находиться в папке lib в папке программного обеспечения axis2.

(например: C: \ Axis \ axis2-1.6.2 \ lib)

Шаг g) Создайте новый класс Java (например, Client.Java) и создайте экземпляр объекта-заглушки. Используя объект-заглушку, мы можем вызвать все поддерживаемые методы конкретного WebService.

Программа Client.Javaпакет 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 []) {пытаться {// Создаем объект-заглушку, передав URL-адрес конечной точки службыCurrencyConvertorStub stub = новый CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate - это класс, который мы должны использовать, упоминая от и до валюты// Объект ConversionRate будет параметром для операции conversionRateConversionRate conversionRate = new ConversionRate ();convertRate.setFromCurrency (Currency.USD);convertRate.setToCurrency (Currency.INR);// Создаем объект ConversionRateResponse, который будет использоваться для перехвата ответа// вызываем службу conversionRate с помощью объекта-заглушкиConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// Мы можем использовать объект conversionRateResponse для получения ответа от ConversionRate ServiceSystem.out.println ("Коэффициент конверсии индийских рупий в доллары США: + conversionRateResponse.getConversionRateResult ());} catch (Exception e) {e.printStackTrace ();}}}

ЧАСТЬ 2) Как протестировать с помощью веб-службы SoapUI

В SoapUI

  1. Перейдите в File> New Soap Project.
  2. Введите имя проекта и расположение URI WSDL.
  3. Нажмите ОК.
  1. Разверните первый запрос и дважды щелкните «Request1». Он отобразит запрос SOAP в формате XML.
  2. Введите из валюты и в валюту
  3. Нажмите на кнопку отправки
  4. XML ответа будет отображаться на правой боковой панели.

Как вы можете заключить, использование инструментов тестирования WebService, таких как SoapUI, ускоряет ваши усилия по тестированию автоматизации веб-служб. Следовательно, 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.

Часто задаваемые вопросы

В чем разница между WebService и WebAPI?

Веб-сервис

Веб-API

  • Все коммуникации и обмен данными, определенные W3C, основаны на XML.
  • Связь и обмен данными через веб-API могут быть XML, JSON или обычными данными.
  • Он определил стандарты - WSDL
  • Нет определенного стандарта
  • Вы не можете сжать данные, но можете сжать HTML-запрос
  • Вы можете сжать данные
  • Пример: SOAP
  • Пример: ОТДЫХ

Узнать больше о тестировании веб-API

Это руководство по тестированию веб-сервисов стало возможным благодаря участию г-на Нарендера Редди Нукалы.

Интересные статьи...