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

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

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

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

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

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

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

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

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

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

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

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

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

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

Тестирование веб-сервисов

XML-ответ ответа дает цену акции.

Тестирование веб-сервисов

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

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

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

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

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

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

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

Тестирование автоматизации веб-сервисов включает в себя следующие этапы:

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

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

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

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

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

WSDL и определение операций и форматов XML

WSDL и определение операций и форматов XML

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

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

  1. . Java
  2. Использование мыльного интерфейса

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

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

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

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

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

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

Шаг а) Загрузите API axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi & Установите переменную среды «AXIS2_HOME».

Тестирование веб-сервисов с использованием API Apache Axis2 (Java)

Шаг б) Создайте папку для хранения всех сгенерированных артефактов.

Пример: 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

Тестирование веб-сервисов с использованием API Apache Axis2 (Java)

Шаг г) После успешного запуска команды вы увидите папку с необходимыми файлами.

Тестирование веб-сервисов с использованием API Apache Axis2 (Java)

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

Тестирование веб-сервисов с использованием API Apache Axis2 (Java)

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

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

Тестирование веб-сервисов с использованием API Apache Axis2 (Java)

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

Тестирование веб-сервисов с использованием API Apache Axis2 (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

В мыльном интерфейсе

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

Тестирование с использованием веб-службы SoapUI

  1. Разверните первый запрос и дважды щелкните «Запрос1». Он отобразит запрос SOAP в формате XML.
  2. Введите валюту отправителя и валюту назначения.
  3. Нажмите на кнопку отправки
  4. XML ответа будет отображаться на правой боковой панели.

Тестирование с использованием веб-службы SoapUI

Как вы можете сделать вывод, использование инструментов тестирования веб-сервисов, таких как 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
Согласно определению W3C, все коммуникации и обмен данными основаны на XML. Связь и обмен данными через веб-API могут быть XML, JSON или простыми данными.
Он определил стандарты – WSDL Нет определенного стандарта
Вы не можете сжать данные, но можете сжать HTML-запрос. Вы можете сжать данные
Пример: SOAP Пример: ОТДЫХ

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

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