Учебники

1) Введение в WebService

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

  

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

 

Что такое тестирование веб-службы?

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

Зачем нужен веб-сервис?

         

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

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

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

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

В качестве примера рассмотрим следующий 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 (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. Он также определяет, как могут быть вызваны сервисы, то есть какое входное значение мы должны предоставить и какой будет формат ответа, который он будет генерировать для каждого вида сервиса.  

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

Для тестирования веб-сервиса вы можете

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

Тестирование WebService включает в себя следующие шаги:

  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: Использование инструмента или написание кода для отправки запроса и проверки ответа

 

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

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

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

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

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

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

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

  1. Перейдите в Файл> Новый проект Soap
  2. Введите Имя проекта и расположение URI WSDL
  3. Нажмите ОК

 

Тестирование веб-сервисов: учебник для начинающих  

  1. Разверните первый запрос и дважды щелкните «Запрос1». Он отобразит запрос SOAP в формате XML.
  2. Введите валюту от и до валюты
  3. Нажмите на кнопку отправить
  4. Ответ 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

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

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

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