Учебное пособие по тестированию веб-сервисов: как тестировать? Учитесь на примере
Что такое веб-сервис?
Веб-службы — это механизм или средство связи, посредством которого два приложения/машины будут обмениваться данными независимо от их базовой архитектуры и технологии.
Что такое тестирование веб-сервисов?
Тестирование веб-сервисов — это тип тестирования программного обеспечения, проверяющий веб-сервисы. Целью тестирования веб-сервисов является проверка функциональности, надежности, производительности и безопасности API (интерфейса прикладного программного обеспечения). Тестирование веб-сервисов в некоторых случаях похоже на модульное тестирование. Вы можете протестировать веб-сервис вручную, создать свой собственный код автоматизации или использовать готовый инструмент автоматизации, например Postman.
Зачем нужен веб-сервис?
Как правило, программные приложения разрабатываются для использования людьми: человек отправляет запрос программной службе, которая, в свою очередь, возвращает ответ в удобочитаемом формате.
В современную эпоху технологий, если вы хотите создать программное приложение, вам не нужно создавать все и вся с нуля. Существует множество готовых сервисов, которые вы можете подключить к своему приложению и начать предоставлять эти сервисы в своем приложении.
Например, вы хотите отображать информацию о прогнозе погоды, которую вам не нужно собирать, обрабатывать и отображать в вашем приложении. Вы можете купить услуги у людей, которые уже хорошо зарекомендовали себя в обработке и публикации такого рода данных.
Веб-сервисы позволяют нам реализовывать подобные реализации.
В качестве примера рассмотрим следующий веб-сервис
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 означает передачу репрезентативного состояния; это архитектура, которая обычно работает через HTTP. Стиль REST подчеркивает взаимодействие между клиентами и службами, которое улучшается за счет ограниченного количества операций. REST является альтернативой SOAP (простому протоколу доступа к объектам), и вместо использования XML для запроса REST в некоторых случаях использует простой URL-адрес. В отличие от SOAP, приложения RESTFUL используют встроенные заголовки HTTP для передачи метаинформации.
Существуют различные коды, которые REST использует для определения того, имеет ли пользователь доступ к API или нет. Например, код 200 или 201 указывает на успешное взаимодействие с телом ответа, а 400 указывает на неверный запрос или URI запроса не соответствует API в системе. Все параметры запроса API и параметры метода могут быть отправлены через любой POST or ПОЛУЧИТЬ переменные.
Rest API поддерживает форматы XML и JSON для тестирования API веб-сервисов. Обычно предпочитают Мобильный телефон и веб-приложения, поскольку они делают работу приложений быстрее и плавнее.
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. Использование инструмента или написания кода для отправки запроса и проверки ответа.
Существует множество инструментов тестирования веб-сервисов для тестирования веб-сервиса SOAP. SoapUI — один из популярных Инструмент API который поможет нам протестировать веб-сервисы SOAP. Фактически вы можете использовать любой язык программирования, который способен отправлять XML-запрос приложению поставщика веб-сервисов через HTTP, а также анализировать и проверять XML-ответ на соответствие ожидаемому результату. В этом руководстве по тестированию веб-служб мы протестируем WebService.
- . Java
- Использование мыльного интерфейса
ЧАСТЬ 1) Тестирование веб-сервиса с использованием API Apache Axis2 (Java).
Обычно веб-сервис принимает запрос и отправляет ответ в формате XML.
Проект Apache Axis2 API — это Java API реализации, который будет использоваться для создания веб-сервисов как на стороне сервера (поставщика услуг), так и на стороне клиента (потребителя услуг).
Axis2 способен отправлять сообщения SOAP, а также получать и обрабатывать сообщения SOAP. Мы можем написать небольшой Java программа, использующая API для создания веб-сервиса. Axis2 сгенерирует WSDL из Java программа, которая будет использоваться для передачи услуг, предлагаемых веб-сервисом. Мы можем использовать ту же ось2 для генерации 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
Шаг г) После успешного запуска команды вы увидите папку с необходимыми файлами.
Шаг e) На следующем шаге этого руководства по тестированию веб-сервисов нам нужно создать клиентскую программу, через которую мы будем отправлять фактический запрос, используя сгенерированные заглушки. Откройте eclipse и создайте новый Java проект и выберите папку, которую мы создали выше.
Шаг f) Добавьте все файлы jar, связанные с axis2, в путь сборки проекта, который будет находиться в папке lib папки программного обеспечения axis2.
(например: C:\Axis\axis2-1.6.2\lib)
Шаг ж) Создайте новый Java класс (например: Client.Java) и создать экземпляр объекта-заглушки. Используя объект-заглушку, мы можем вызвать все поддерживаемые методы конкретного веб-сервиса.
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
В мыльном интерфейсе
- Перейдите в «Файл» > «Новый проект Soap».
- Введите имя проекта и расположение URI WSDL.
- нажмите OK
- Разверните первый запрос и дважды щелкните «Запрос1». Он отобразит запрос SOAP в формате XML.
- Введите валюту отправителя и валюту назначения.
- Нажмите на кнопку отправки
- XML ответа будет отображаться на правой боковой панели.
Как вы можете сделать вывод, использование инструментов тестирования веб-сервисов, таких как SoapUI, ускоряет ваши усилия по автоматизации тестирования веб-сервисов. Следовательно, SoapUi будет в центре нашего изучения в последующих уроках.
Итого
- Программные приложения взаимодействуют и обмениваются данными друг с другом с помощью веб-службы.
- SOAP и REST — два популярных протокола для создания веб-сервиса.
- SOAP поддерживает обмен данными на основе XML.
- REST поддерживает XML, Json или обмен данными в виде простого URL-адреса для тестирования API веб-сервисов.
- WSDL — это язык на основе XML, который будет использоваться для описания услуг, предлагаемых веб-службой. SOAP определяется с использованием WSDL.
-
Чтобы протестировать WebService, вы можете
- Создайте свой собственный код. Например, используйте API Axis2 для Java
- Используйте инструменты автоматизации тестирования WebService, такие как SoapUI.
- Инструменты автоматизации, такие как SoapUI, дадут толчок вашим усилиям по автоматизации тестирования веб-сервисов и потребуют меньше усилий по кодированию по сравнению с созданием собственного кода с использованием Axis2 API.
FAQ
Узнать больше о Тестирование веб-API
Это руководство по тестированию веб-сервисов стало возможным благодаря вкладу г-на Нарендера Редди Нукалы.