Учебное пособие по тестированию веб-сервисов с примерами.

⚡ Умное резюме

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

  • 🌐 Веб-сервис: Веб-сервис позволяет двум приложениям обмениваться данными по сети.
  • 🧪 Что проверяется: Тестирование подтверждает функциональность, надежность, производительность и безопасность.
  • 📨 МЫЛО и ОТДЫХ: SOAP использует XML-конверты; REST использует простой HTTP и URLs.
  • 📄 ВСДЛ: WSDL — это XML-файл, описывающий операции, предоставляемые SOAP-сервисом.
  • 🇧🇷 Инструменты и Code: В тестах используются такие инструменты, как... SoapUI или обычай Java с использованием Apache Axis2.
  • 🤖 Помощь ИИ: Искусственный интеллект генерирует тестовые примеры для API и автоматически проверяет ответы.

Учебное пособие по тестированию веб-сервисов

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

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

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

Тестирование веб-сервисов — это тип тестирования программного обеспечения, проверяющий веб-сервисы. Целью тестирования веб-сервисов является проверка функциональности, надежности, производительности и безопасности 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 расшифровывается как 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 or ПОЛУЧИТЬ переменные.

Rest API поддерживает форматы XML и JSON для тестирования API веб-сервисов. Обычно предпочитают Mobile и веб-приложения, поскольку они делают работу приложений быстрее и плавнее.

WSDL

WSDL (Веб-службы Description Language) — это язык на основе XML, который будет использоваться для описания услуг, предлагаемых веб-сервисом.

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

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

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

  1. Тестирование вручную
  2. Создайте собственную автоматизацию Code
  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. . SoapUI

ЧАСТЬ 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 Веб-сервис

In SoapUI

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

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

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

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

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

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

Веб-сервис определяется W3C и обменивается данными с использованием XML в соответствии со стандартом WSDL, например, SOAP. Веб-API имеет более широкое применение: он может обмениваться данными в формате XML, JSON или в виде обычных данных без установленного стандарта, например, REST, и может сжимать данные.

К распространенным инструментам тестирования веб-сервисов и API относятся: SoapUI и ReadyAPI для SOAP и REST, Postman для ОТДЫХА Apache JMeter для нагрузочного тестирования и REST Assured для тестирования кода. Java тесты. SoapUI широко используется для SOAP-сервисов.

Модульное тестирование проверяет отдельную функцию изолированно, обычно разработчиком. API-тестирование проверяет поведение сервиса через его интерфейс, включая запросы, ответы, коды состояния и данные, во всех компонентах и ​​часто без исходного кода.

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

Да. Искусственный интеллект может анализировать определение сервиса, создавать допустимые и недопустимые данные запроса, прогнозировать граничные условия и предлагать утверждения. Такая автоматическая генерация улучшает покрытие и сокращает трудозатраты на написание тестовых случаев для SOAP или REST.

Подведем итог этой публикации следующим образом: