Учебники

SoapUI — Краткое руководство

SOAP — Введение

SOAP — это сокращение от Simple Object Access Protocol. Он определен Консорциумом World Wide Web (W3C) по адресу https://www.w3.org/TR/2000/NOTE-SOAP-20000508 следующим образом:

SOAP — это легкий протокол для обмена информацией в децентрализованной распределенной среде. Это протокол на основе XML, который состоит из трех частей: конверт, который определяет структуру для описания того, что находится в сообщении и как его обрабатывать; набор правил кодирования для выражения экземпляров определяемых приложением типов данных; и соглашение для представления удаленных вызовов процедур и ответов.

SOAP — Важные функции

Ниже приведены некоторые важные функции SOAP.

  • Это коммуникационный протокол, предназначенный для общения через Интернет.

  • Это может расширить HTTP для обмена сообщениями XML.

  • Он обеспечивает передачу данных для веб-сервисов.

  • Он может обмениваться полными документами или вызывать удаленную процедуру.

  • Может использоваться для трансляции сообщения.

  • Он не зависит от платформы и языка.

  • Это XML-способ определения, какая информация отправляется и как.

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

Это коммуникационный протокол, предназначенный для общения через Интернет.

Это может расширить HTTP для обмена сообщениями XML.

Он обеспечивает передачу данных для веб-сервисов.

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

Может использоваться для трансляции сообщения.

Он не зависит от платформы и языка.

Это XML-способ определения, какая информация отправляется и как.

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

Хотя SOAP может использоваться в различных системах обмена сообщениями и может доставляться через различные транспортные протоколы, первоначальная цель SOAP — удаленные вызовы процедур, транспортируемые через HTTP. Другие платформы, такие как CORBA, DCOM и Java RMI, предоставляют функциональность, аналогичную SOAP, но сообщения SOAP написаны полностью в XML и поэтому уникально независимы от платформы и языка.

SOAP — Сообщения

SOAP-сообщение — это обычный XML-документ, содержащий следующие элементы:

  • Конверт — определяет начало и конец сообщения. Это обязательный элемент.

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

  • Тело — содержит данные XML, содержащие отправляемое сообщение. Это обязательный элемент.

  • Неисправность — необязательный элемент неисправности, который предоставляет информацию об ошибках, возникающих при обработке сообщения.

Конверт — определяет начало и конец сообщения. Это обязательный элемент.

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

Тело — содержит данные XML, содержащие отправляемое сообщение. Это обязательный элемент.

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

Все эти элементы объявлены в пространстве имен по умолчанию для конверта SOAP —

https://www.w3.org/2001/12/soap-envelope

Пространство имен по умолчанию для кодировки SOAP и типов данных —

https://www.w3.org/2001/12/soap-encoding

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

SOAP — структура сообщения

Следующий блок отображает общую структуру сообщения SOAP —

<?xml version = "1.0"?> 
<SOAP-ENV:Envelope 
xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope" 
SOAP-ENV:encodingStyle = "http://www.w3.org/2001/12/soap-encoding">  
   <SOAP-ENV:Header> 
      ... 
      ... 
   </SOAP-ENV:Header>  
   <SOAP-ENV:Body> 
      ... 
      ... 
      <SOAP-ENV:Fault> 
         ... 
         ... 
      </SOAP-ENV:Fault>  
   </SOAP-ENV:Body>  
</SOAP_ENV:Envelope> 

МЫЛО — Что такое ОТДЫХ?

REST — это аббревиатура для передачи представительского состояния. Его можно определить как архитектурный стиль разработки программного обеспечения. REST не является спецификацией или стандартом W3C. Следовательно, с RESTful Services легче работать. Он не требует какой-либо инфраструктуры спецификации промежуточного программного обеспечения.

ОТДЫХ — Важные характеристики

Ниже приведены некоторые важные особенности REST.

  • Он основывается на протоколе связи клиент-сервер, кешируемый без учета состояния — практически во всех случаях используется HTTP.

  • Это облегченная альтернатива WebService и RPC (удаленный вызов процедур), такая как SOAP-WSDL.

  • Он представляет все в уникальных идентификаторах или URI.

  • Он использует стандартные методы HTTP, такие как GET, POST, PUT, DELETE.

  • Он связывает источники вместе.

  • Ресурсы REST могут иметь несколько представлений.

  • Любая именованная информация считается Ресурсом. Например: изображение, личность, документ — все это можно рассматривать как пример ресурса и представлять как уникальный идентификатор или URI.

  • Саму World Wide Web, основанную на HTTP, можно рассматривать как архитектуру на основе REST.

Он основывается на протоколе связи клиент-сервер, кешируемый без учета состояния — практически во всех случаях используется HTTP.

Это облегченная альтернатива WebService и RPC (удаленный вызов процедур), такая как SOAP-WSDL.

Он представляет все в уникальных идентификаторах или URI.

Он использует стандартные методы HTTP, такие как GET, POST, PUT, DELETE.

Он связывает источники вместе.

Ресурсы REST могут иметь несколько представлений.

Любая именованная информация считается Ресурсом. Например: изображение, личность, документ — все это можно рассматривать как пример ресурса и представлять как уникальный идентификатор или URI.

Саму World Wide Web, основанную на HTTP, можно рассматривать как архитектуру на основе REST.

Службы REST не зависят от платформы и языка. Поскольку он основан на стандартах HTTP, он может легко работать при наличии брандмауэров. Как и WebServices, REST не предлагает никакой встроенной защиты, управления сеансами, гарантии QoS, но их можно добавить, опираясь на HTTP. Для шифрования REST может использоваться поверх HTTPS.

SoapUI — Введение

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

SoapUI — Важные функции

Ниже приведены некоторые важные функции SoapUI.

  • Он способен выполнять роль как клиента, так и службы.

  • Это позволяет пользователям быстро и эффективно создавать функциональные и нефункциональные тесты, используя единую среду.

  • Он лицензируется в соответствии с условиями GNU Leaser General Public License (LGPL).

  • Он реализован исключительно на платформе JAVA.

  • Он поддерживает Windows, Mac, несколько диалектов Linux.

  • Это позволяет тестировщикам выполнять автоматизированные функциональные, регрессионные, тесты на соответствие и нагрузочные тесты на различных веб-API.

  • Он поддерживает все стандартные протоколы и технологии для тестирования всех видов API.

Он способен выполнять роль как клиента, так и службы.

Это позволяет пользователям быстро и эффективно создавать функциональные и нефункциональные тесты, используя единую среду.

Он лицензируется в соответствии с условиями GNU Leaser General Public License (LGPL).

Он реализован исключительно на платформе JAVA.

Он поддерживает Windows, Mac, несколько диалектов Linux.

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

Он поддерживает все стандартные протоколы и технологии для тестирования всех видов API.

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

Он удобен для пользователя и легко превращает функциональные тесты в нефункциональные тесты, такие как нагрузка, стресс-тестирование.

SoapUI — Возможности

SoapUI богат следующими пятью аспектами:

  • Функциональное тестирование
  • Тестирование безопасности
  • Нагрузочное тестирование
  • Протоколы и технологии
  • Интеграция с другими инструментами

Давайте узнаем больше о каждой из этих возможностей.

Функциональное тестирование

  • SoapUI позволяет тестировщикам писать функциональные API-тесты в SoapUI.

  • SoapUI поддерживает функцию Drag-Drop, которая ускоряет разработку скрипта.

  • SoapUI поддерживает отладку тестов и позволяет тестировщикам разрабатывать управляемые данными тесты.

  • SoapUI поддерживает несколько сред, облегчая переключение между средами QA, Dev и Prod.

  • SoapUI позволяет выполнять расширенные сценарии (тестировщик может разрабатывать свой собственный код в зависимости от сценариев).

SoapUI позволяет тестировщикам писать функциональные API-тесты в SoapUI.

SoapUI поддерживает функцию Drag-Drop, которая ускоряет разработку скрипта.

SoapUI поддерживает отладку тестов и позволяет тестировщикам разрабатывать управляемые данными тесты.

SoapUI поддерживает несколько сред, облегчая переключение между средами QA, Dev и Prod.

SoapUI позволяет выполнять расширенные сценарии (тестировщик может разрабатывать свой собственный код в зависимости от сценариев).

Тестирование безопасности

  • SoapUI выполняет полный набор сканирования уязвимостей.

  • SoapUI предотвращает SQL-инъекцию для защиты баз данных.

  • SoapUI сканирует переполнения стека, вызванные огромными по размеру документами.

  • SoapUI сканирует межсайтовый скриптинг, который происходит, когда параметры сообщений отображаются в сообщениях.

  • SoapUI выполняет фаззинговое сканирование и сканирование границ, чтобы избежать ошибочного поведения сервисов.

SoapUI выполняет полный набор сканирования уязвимостей.

SoapUI предотвращает SQL-инъекцию для защиты баз данных.

SoapUI сканирует переполнения стека, вызванные огромными по размеру документами.

SoapUI сканирует межсайтовый скриптинг, который происходит, когда параметры сообщений отображаются в сообщениях.

SoapUI выполняет фаззинговое сканирование и сканирование границ, чтобы избежать ошибочного поведения сервисов.

Нагрузочное тестирование

  • SoapUI распределяет нагрузочные тесты по n числу агентов LoadUI.

  • SoapUI с легкостью имитирует нагрузочное тестирование в больших объемах и в реальных условиях.

  • SoapUI позволяет расширенные пользовательские отчеты для сбора параметров производительности.

  • SoapUI позволяет осуществлять сквозной мониторинг производительности системы.

SoapUI распределяет нагрузочные тесты по n числу агентов LoadUI.

SoapUI с легкостью имитирует нагрузочное тестирование в больших объемах и в реальных условиях.

SoapUI позволяет расширенные пользовательские отчеты для сбора параметров производительности.

SoapUI позволяет осуществлять сквозной мониторинг производительности системы.

Протоколы и технологии

SoapUI поддерживает широкий спектр протоколов —

  • SOAP — простой протокол доступа к объектам
  • WSDL — язык определения веб-сервисов
  • REST — представительский государственный трансферт
  • HTTP — протокол передачи гипертекста
  • HTTPS — протокол передачи гипертекста
  • AMF — формат сообщения о действии
  • JDBC — соединение с базой данных Java
  • JMS — служба сообщений Java

Интеграция с другими инструментами

  • Apache Maven Project
  • HUDSON
  • JUnit
  • Apache — Муравей и многое другое …

SoapUI — NG Pro

SoapUI — это инструмент с бесплатной версией с открытым исходным кодом, обладающий базовыми функциями тестирования, в то время как SoapUI NG Pro — это коммерческий инструмент с расширенными функциями отчетности, управляемыми данными функциями и многим другим.

сравнение

В следующей таблице сравниваются и сравниваются различные функции SoapUI и SoapUI NG Pro.

Характеристики SoapUI SoapUI NG Pro
Поддерживаемые технологии
МЫЛО да да
WSDL / WADL да да
ОСТАЛЬНОЕ да да
JMS да да
AMF да да
JDBC да да
HTTP да да
Основные характеристики
Автономное приложение да да
Поддержка нескольких сред нет да
Плавающая лицензия нет да
WSDL Покрытие нет да
Покрытие запроса / ответа нет да
Утверждение сообщения да да
Тест Рефакторинг нет да
Запуск нескольких тестов да да
Тестирование источника данных нет да
Библиотеки сценариев нет да
Блок отчетности нет да
Шаги ручного теста да да
Составление отчетов
Отчеты Junit нет да
Экспорт данных отчета нет да
Отчет WSDL HTML да да
Тестовый охват покрытия нет да
Тестовое покрытие нет да
Охват утверждений нет да
Покрытие записи сообщения нет да

SoapUI — Установка и настройка

SoapUI — это кроссплатформенный инструмент. Он поддерживает операционные системы Windows, Linux и Mac.

Предпосылки

  • Процессор — 32-битный или 64-битный процессор с тактовой частотой 1 ГГц или выше.

  • ОЗУ — 512 МБ ОЗУ.

  • Место на жестком диске — минимум 200 МБ на жестком диске для установки.

  • Версия операционной системы — Windows XP или новее, MAC OS 10.4 или новее.

  • ЯВА — ЯВА 6 или позже.

Процессор — 32-битный или 64-битный процессор с тактовой частотой 1 ГГц или выше.

ОЗУ — 512 МБ ОЗУ.

Место на жестком диске — минимум 200 МБ на жестком диске для установки.

Версия операционной системы — Windows XP или новее, MAC OS 10.4 или новее.

ЯВА — ЯВА 6 или позже.

Процесс загрузки

Шаг 1. Перейдите на сайт www.soapui.org и нажмите «Загрузить SoapUI».

Скачать

Шаг 2 — Нажмите «Получить», чтобы загрузить SoapUI с открытым исходным кодом. Начнется загрузка 112 МБ .exe файла в систему. Подождите, пока процесс загрузки не будет завершен.

Тестирование загрузок

Процесс установки

Шаг 1 — После загрузки запустите файл .exe с именем «Запуск от имени администратора».

Exe File

Windows запустит процесс установки, как показано на следующем снимке экрана.

Мастер установки

Шаг 2 — После настройки в окне процесса отобразится следующий экран, нажмите Далее.

Окно процесса

Шаг 3 — Примите лицензионное соглашение и нажмите Далее.

Лицензионное соглашение

Шаг 4 — Выберите каталог установки или оставьте его в качестве пути по умолчанию, выбранного системой. Нажмите кнопку «Далее.

Каталог установки

Шаг 5 — Выберите компоненты, которые вы хотите установить. Нажмите кнопку «Далее.

Составная часть

Шаг 6 — Примите лицензионное соглашение для HermesJMS и нажмите Далее.

Лицензия на Гермес

Шаг 7 — Выберите целевой каталог для сохранения учебников и нажмите Далее.

Целевой каталог

Шаг 8 — Выберите расположение папки меню «Пуск» или оставьте местоположение по умолчанию как есть и нажмите «Далее».

Местоположение по умолчанию

Шаг 9 — Установите флажок «создать значок на рабочем столе» и нажмите «Далее».

Иконка рабочего стола

Теперь установка начинается. Это займет несколько минут.

Установка начинается

Шаг 10 — После завершения установки нажмите Готово в следующем мастере.

монтажник

После нажатия кнопки «Готово» запускается SoapUI.

  • Строка меню
  • Панель инструментов
  • Панель навигации проекта
  • Свойства рабочей области
  • Панель журнала

Начиная

Процесс настройки

Первым шагом является создание рабочей области, которая может содержать несколько проектов.

Шаг 1 — Перейдите в Файл → Новая рабочая область.

Рабочая среда

Шаг 2 — Добавьте название рабочей области и нажмите ОК.

Образец рабочего пространства

Шаг 3 — Теперь выберите путь, по которому будет сохранено рабочее пространство XML.

Шаг 4 — Выберите путь и нажмите Сохранить.

Новое рабочее пространство

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

свойства

SoapUI — WSDL

WSDL расшифровывается как язык описания веб-сервисов. Это стандартный формат для описания веб-службы. WSDL был разработан совместно Microsoft и IBM. WSDL произносится как «wiz-тупой» и произносится как «WSD-L».

WSDL ─ Краткая история

WSDL 1.1 был представлен Ariba, IBM и Microsoft в виде заметки W3C для описания сервисов для W3C XML Activity по XML-протоколам в марте 2001 года.

WSDL 1.1 не был одобрен Консорциумом World Wide Web (W3C), однако он только что выпустил проект для версии 2.0, который будет рекомендацией (официальным стандартом), и, таким образом, одобрен W3C.

WSDL ─ указывает на заметку

WSDL — это основанный на XML протокол для обмена информацией в децентрализованной и распределенной среде. Некоторые из других функций WSDL следующие:

  • Определения WSDL описывают, как получить доступ к веб-службе и какие операции она будет выполнять.

  • Это язык для описания того, как взаимодействовать со службами на основе XML.

  • Он является неотъемлемой частью универсального описания, обнаружения и интеграции (UDDI), всемирного бизнес-реестра на основе XML.

  • WSDL — это язык, который использует UDDI.

Определения WSDL описывают, как получить доступ к веб-службе и какие операции она будет выполнять.

Это язык для описания того, как взаимодействовать со службами на основе XML.

Он является неотъемлемой частью универсального описания, обнаружения и интеграции (UDDI), всемирного бизнес-реестра на основе XML.

WSDL — это язык, который использует UDDI.

Использование WSDL

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

Понимание WSDL

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

Три основных элемента WSDL, которые могут быть определены отдельно:

  • Типы
  • операции
  • переплет

Документ WSDL имеет различные элементы, но они содержатся в этих трех основных элементах, которые можно разрабатывать как отдельные документы, а затем их можно объединять или повторно использовать для формирования полных файлов WSDL.

В этом руководстве мы будем следовать WSDL CurrencyConverter: http://www.webservicex.net/CurrencyConvertor.asmx?wsdl

Формат и элементы

CurrencyConverter WSDL будет выглядеть следующим образом —

Конвертер валют

отклик

Связующие элементы

WSDL ─ Тип порта

Элемент <portType> объединяет несколько элементов сообщения, чтобы сформировать полную одностороннюю или двустороннюю операцию. Например, <portType> может объединять один запрос и одно ответное сообщение в одну операцию запрос / ответ. Это чаще всего используется в сервисах SOAP. PortType может определять несколько операций.

пример

Тип порта

  • Элемент portType определяет одну операцию, которая называется ConversionRate.
  • Операция состоит из одного входного сообщения ConversionRateHttpPostIn.
  • Операция для выходного сообщения — ConversionRateHttpPostOut.

Образцы Операции

WSDL поддерживает четыре основных шаблона работы —

Одностороннее движение

Служба получает сообщение. Следовательно, операция имеет один элемент ввода. Грамматика для односторонней операции —

<wsdl:definitions .... >  
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken"> 
         <wsdl:input name = "nmtoken"? message = "qname"/> 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions> 

Запрос ─ Ответ

Служба получает сообщение и отправляет ответ. Поэтому операция имеет один элемент ввода, за которым следует один элемент вывода. Для инкапсуляции ошибок также может быть указан необязательный элемент неисправности. Грамматика для операции запрос-ответ —

<wsdl:definitions .... > 
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens"> 
         <wsdl:input name = "nmtoken"? message = "qname"/> 
         <wsdl:output name = "nmtoken"? message = "qname"/> 
         <wsdl:fault name = "nmtoken" message = "qname"/>* 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions> 

Запрос ─ Ответ

Служба отправляет сообщение и получает ответ. Поэтому операция имеет один элемент вывода, за которым следует один элемент ввода. Для инкапсуляции ошибок также может быть указан необязательный элемент неисправности. Грамматика для операции запроса-ответа —

<wsdl:definitions .... > 
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens"> 
         <wsdl:output name = "nmtoken"? message = "qname"/> 
         <wsdl:input name = "nmtoken"? message = "qname"/> 
         <wsdl:fault name = "nmtoken" message = "qname"/>* 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions> 

Уведомления

Служба отправляет сообщение. Следовательно, операция имеет один выходной элемент. Ниже приведена грамматика для операции уведомления:

<wsdl:definitions .... > 
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken"> 
         <wsdl:output name = "nmtoken"? message = "qname"/> 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions> 

WSDL ─ Связывание и обслуживание

Элемент <binding> предоставляет конкретные сведения о том, как операция portType будет передаваться по проводам.

  • Привязки могут быть доступны через несколько транспортов, включая HTTP GET, HTTP POST или SOAP.

  • Привязки предоставляют конкретную информацию о том, какой протокол используется для передачи операций portType.

  • Привязки предоставляют информацию о том, где находится сервис.

  • Для протокола SOAP привязка — это <soap: binding>, а транспорт — это сообщения SOAP поверх протокола HTTP.

  • Вы можете указать несколько привязок для одного portType.

Привязки могут быть доступны через несколько транспортов, включая HTTP GET, HTTP POST или SOAP.

Привязки предоставляют конкретную информацию о том, какой протокол используется для передачи операций portType.

Привязки предоставляют информацию о том, где находится сервис.

Для протокола SOAP привязка — это <soap: binding>, а транспорт — это сообщения SOAP поверх протокола HTTP.

Вы можете указать несколько привязок для одного portType.

Связующие Услуги

обслуживание

Элемент <service> определяет порты, поддерживаемые веб-службой. Для каждого из поддерживаемых протоколов существует один элемент порта. Служебный элемент представляет собой набор портов.

Клиенты веб-службы могут узнать следующее из элемента службы —

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

Элемент службы включает в себя элемент документации для обеспечения удобочитаемой документации.

<wsdl:service name = "CurrencyConvertor">
   <wsdl:port name = "CurrencyConvertorSoap" binding = "tns:CurrencyConvertorSoap">
      <soap:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port>
   <wsdl:port name = "CurrencyConvertorSoap12"binding = "tns:CurrencyConvertorSoap12>
      <soap12:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port>
   <wsdl:port name = "CurrencyConvertorHttpGet" binding = "tns:CurrencyConvertorHttpGet">
      <http:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port>
   <wsdl:portname = "CurrencyConvertorHttpPost"binding = "tns:CurrencyConvertorHttpPost">
      <http:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port> 
</wsdl:service> 

SoapUI — Проект

Проект SoapUI является центральной точкой всего тестирования SoapUI. После создания проекта пользователь может создавать и запускать функциональные тесты, загружать тесты, создавать фиктивные сервисы и многое другое.

В этой главе мы обсудим две вещи — Как —

  • Создать проект SOAP
  • Добавить WSDL

Создать проект SOAP

Шаг 1 — В навигаторе в левой части экрана щелкните правой кнопкой мыши «Проект» и выберите «Новый проект SOAP».

Проект SOAP

Или перейдите в File и выберите New Soap Project.

Выберите файл

При выборе открывается новое всплывающее окно — New Soap Project.

Шаг 2Имя проекта : введите имя проекта — это поле ввода пользователя. Начальный WSDL : это не обязательно. Это зависит от пользователя. Пользователь может предоставить WSDL или добавить после создания проекта.

В этом случае мы создаем проект и добавляем WSDL позже.

Создать проект

Шаг 3 — Нажмите ОК. Он создаст новый проект и будет виден на левой боковой панели навигации.

Панель навигации

Добавить WSDL

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

Шаг 1. Чтобы добавить WSDL, щелкните правой кнопкой мыши имя проекта (SOAP — Пример) и выберите Добавить WSDL.

Добавить WSDL

При выборе отображается мастер WSDL.

Шаг 2Местоположение WSDL : введите WSDL как http://www.webservicex.com/currencyconvertor.asmx?WSDL или найдите его с компьютера.

Шаг 3. Как только WSDL введен, будут установлены 3 флажка — Создать запросы, Создать TestSuite, Создать MockServices. В зависимости от требований пользователь может установить один или несколько флажков.

По умолчанию флажок Создать запросы установлен.

Создать запрос

Шаг 4 — Нажмите ОК. WSDL успешно добавлен в Проект. Это можно проверить, наблюдая за левой навигационной панелью. Внутри проекта есть несколько операций, и запросы добавляются в соответствии с WSDL.

Многократная операция

Просмотр сведений

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

На вкладке «Обзор» предоставляется различная информация, например:

  • Путь к файлу — отображает местоположение сохраненного проекта XML.

  • Сводка интерфейса — Имя интерфейса и связанный с ним WSDL.

  • Сводка теста — отображает наборы тестов, тестовые наборы, этапы тестирования, утверждения, добавленные в проект.

Путь к файлу — отображает местоположение сохраненного проекта XML.

Сводка интерфейса — Имя интерфейса и связанный с ним WSDL.

Сводка теста — отображает наборы тестов, тестовые наборы, этапы тестирования, утверждения, добавленные в проект.

Детальный просмотр

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

На вкладке «Обзор» перечислены определения WSDL, части определения и подробности операции.

Часть определения

Аналогично, конечные точки службы содержат подробные сведения о конечных точках.

Конечная точка

На вкладке «Содержимое WSDL» представлены все сведения о WSDL в формате XML / схемы, как показано на следующем снимке экрана.

Вкладка «Содержимое»

SoapUI — TestSuite

TestSuite — это набор тестовых случаев, которые можно использовать для группировки функциональных тестов в логические единицы. В проекте SoapUI может быть создано любое количество TestSuites для поддержки масштабных сценариев тестирования.

Создание TestSuite

Шаг 1. Внутри проекта щелкните правой кнопкой мыши интерфейс (рядом с именем проекта) и выберите «Создать TestSuite».

Здесь SOAP — Example — это имя проекта, а CurrencyConvertorSoap и CurrencyConvertorSoap12 — интерфейсы.

Генерация Testsuite

Шаг 2 — Откроется новый мастер. Выберите варианты на основе требований.

Шаг 3 — После того, как выбор сделан, нажмите ОК.

Создать Testsuite

Шаг 4 — Установите флажок «Создать LoadTest». Это создаст LoadTest для каждого TestCase, созданного в этом TestSuite.

Шаг 5 — Введите имя TestSuite в новом мастере и нажмите кнопку ОК.

Название Testsuite

Созданный TestSuite отображается на панели навигации, как показано на следующем снимке экрана.

Показать навигацию

Шаг 6 — Дважды щелкните Имя TestSuite, и на правой панели откроется окно TestSuite. Поскольку тестовые примеры не добавляются, он пуст.

Правая панель

Свойства TestSuite можно увидеть в нижней части панели навигации. Новые пользовательские свойства могут быть добавлены на уровне TestSuite.

Пользовательские свойства

SoapUI — TestCase

TestCase — это набор TestSteps, собранных для тестирования некоторых специфических аспектов веб-сервисов. Пользователь может добавить n TestCases в TestSuite и даже модульно их вызвать, чтобы вызывать друг друга для сложных сценариев тестирования.

Создание TestCase

Шаг 1 — В TestSuite пользователь может добавить несколько тестовых случаев. Щелкните правой кнопкой мыши набор тестов и выберите «Новый тестовый набор».

Новый тест-кейс

Шаг 2 — Введите имя TestCase и нажмите ОК.

Имя TestCase

Созданный TestCase имеет нулевые тестовые шаги на данный момент. TestCase добавляется с нулевым TestSteps для всех видов доступных тестов. После добавления TestSteps числа в скобках изменятся автоматически. Функциональный TestStep должен перейти в «Test Steps», тогда как Performance TestStep должен перейти в «Load Test», а Security TestStep — в «Security Tests».

Функциональный тест

Шаг 3 — Дважды щелкните Имя TestCase, и на правой боковой панели откроется окно TestCase. Так как TestSteps не добавлены, он пуст, как показано на следующем снимке экрана.

Тестовое окно

SoapUI — TestStep

TestSteps — это «строительные блоки» функциональных тестов в SoapUI. Они добавляются в TestCase и используются для управления потоком выполнения и проверки функциональности веб-служб, которые должны быть протестированы.

Вставка TestStep

Шаг 1 — Щелкните правой кнопкой мыши TestSteps. Добавьте Step и выберите соответствующий TestStep из списка. Например, если пользователь должен протестировать REST WebService, он выберет запрос на тестирование REST.

Добавить шаг

Шаг 2. Добавьте TestStep для проверки импортированного запроса SOAP, выбрав TestSteps → Добавить шаг → Запрос SOAP.

Шаг 3 — Введите имя TestStep и нажмите OK в мастере.

Укажите имя

После нажатия «ОК», появляется диалоговое окно, чтобы выбрать операцию для вызова. Все операции перечислены, и пользователи могут выбрать операцию, которую они хотели бы вызвать.

Есть две операции, которые будут перечислены. Обе операции одинаковы, за исключением используемой версии SOAP. CurrencyConvertorSoap использует SOAP версии 1.1, тогда как CurrencyConvertorSoap12 использует SOAP версии 1.2.

Шаг 4 — Выберите первый — CurrencyConvertorSoap и нажмите ОК.

Testrequest

При добавлении TestCase могут быть добавлены различные стандартные утверждения. Утверждения также называются контрольными точками / точками проверки запроса / ответа SOAP.

Шаг 5 — Давайте создадим TestCase с опцией по умолчанию, что означает создание TestStep БЕЗ любой из следующих точек проверки:

  • Проверяет, является ли ответное сообщение SOAP при выполнении теста.
  • Проверяет правильность схемы ответа.
  • Проверяет, содержит ли ответ SOAP ОТКАЗ.

Добавить запрос в дело

Шаг 6 — После нажатия OK, появляется следующий XML-скриншот запроса.

Запросить XML

Счетчик шагов теста теперь увеличивается до единицы по мере добавления функционального TestStep. Аналогично, при добавлении LoadSecurity и SecuritySteps соответствующее число автоматически увеличивается в зависимости от количества добавленных шагов.

Увеличивается

SoapUI — запрос и ответ

Настройка запроса

Здесь мы выполним конвертацию валюты из INR в USD.

  • FromCurrency — INR
  • ToCurrency — USD

Затем введите эти данные вместо знака вопроса, который будет отправлен в виде XML-запроса. Поместив эти значения в соответствующие теги XML, нажмите кнопку «Отправить запрос», чтобы проверить ответ.

Отправить запрос

отклик

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

Прочитав ответ, можно сделать вывод, что 1 единица МНО = 0,0147 долл. США.

Ответ веб-сервера

HTTP-запрос

Сообщения SOAP транспортируются по протоколу HTTP. Чтобы просмотреть HTTP-запрос, щелкните RAW в окне запроса SoapUI (слева).

HTTP-запрос

Запрос размещен на веб-сервере. Следовательно, используется метод POST Http.

Запрос SOAP транспортируется в теле сообщения http, которое показано следующим образом.

POST http://www.webservicex.com/currencyconvertor.asmx HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: text/xml;charset = UTF-8 
SOAPAction: "http://www.webserviceX.NET/ConversionRate" 
Content-Length: 353 
Host: www.webservicex.com 
Connection: Keep-Alive 
User-Agent: Apache-HttpClient/4.1.1 (java 1.5) 

HTTP-ответ

Щелкните вкладку «RAW» в окне ответа SOAP-UI, чтобы понять, как ответ отправляется через HTTP.

После обработки запроса отображается http-код ответа (200), что означает его успешность. Веб-сервер успешно его обработал.

Ответ SOAP отправляется обратно клиенту как часть тела сообщения HTTP.

HTTP/1.1 200 OK 
Cache-Control: private, max-age = 0 
Content-Type: text/xml; charset = utf-8 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Server: Microsoft-IIS/7.0 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Sun, 22 Jan 2017 19:39:31 GMT 
Content-Length: 316 

Http-ответ

Следующие HTTP-коды используются для отправки ответов веб-сервером и очень полезны для отладки.

HTTP код Описание

1хх:

Информационный — это означает, что запрос был получен и процесс продолжается.

2xx:

Успех — действие было успешно получено, понято и принято.

3xx:

Перенаправление — это означает, что для выполнения запроса необходимо предпринять дальнейшие действия.

4xx:

Ошибка клиента — это означает, что запрос содержит неверный синтаксис или не может быть выполнен.

5xx:

Ошибка сервера — серверу не удалось выполнить явно допустимый запрос.

1хх:

Информационный — это означает, что запрос был получен и процесс продолжается.

2xx:

Успех — действие было успешно получено, понято и принято.

3xx:

Перенаправление — это означает, что для выполнения запроса необходимо предпринять дальнейшие действия.

4xx:

Ошибка клиента — это означает, что запрос содержит неверный синтаксис или не может быть выполнен.

5xx:

Ошибка сервера — серверу не удалось выполнить явно допустимый запрос.

SoapUI — Свойства

Свойства являются центральным аспектом более сложного тестирования с SoapUI. Свойства функционального тестирования используются для параметризации выполнения и функциональности тестов.

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

  • Свойства могут использоваться для хранения учетных данных аутентификации, что упрощает управление ими в центральном месте или во внешнем файле.

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

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

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

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

Определение свойств

Свойства могут быть определены на многих уровнях в проекте.

  • Свойства, которые являются общими на уровне проекта, могут быть определены на уровне проекта.

  • Точно так же конкретные свойства TestSuite и TestCase могут быть определены на их соответствующих уровнях.

  • Специфические свойства проекта определены на вкладке Пользовательские свойства.

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

Точно так же конкретные свойства TestSuite и TestCase могут быть определены на их соответствующих уровнях.

Специфические свойства проекта определены на вкладке Пользовательские свойства.

Определение свойств

Например, свойство «ToCurrency» можно определить на уровне проекта, щелкнув символ «+» и введя имя и значение свойства.

ToCurrency

Доступ к собственности

Доступ к свойству можно получить в любом месте проекта с помощью расширения свойств.

Структура будет как —

  • $ {# Project # PropertyName} — для уровня проекта

  • $ {# TestSuite # PropertyName} — для уровня Test Suite

  • $ {# TestCase # PropertyName} — для уровня тестового примера

  • $ {TestStepName # PropertyName} — для уровня шага теста

  • $ {# MockService # PropertyName} — для свойства MockService

  • $ {# Global # PropertyName} — для глобальных свойств находится в меню «Файл» → «Настройки» → «Глобальные свойства». Это свойство можно использовать во всех проектах

  • $ {# System # PropertyName} — для свойства системы, которое можно найти в справке → свойства системы

  • $ {# Env # PropertyName} — для переменной среды

$ {# Project # PropertyName} — для уровня проекта

$ {# TestSuite # PropertyName} — для уровня Test Suite

$ {# TestCase # PropertyName} — для уровня тестового примера

$ {TestStepName # PropertyName} — для уровня шага теста

$ {# MockService # PropertyName} — для свойства MockService

$ {# Global # PropertyName} — для глобальных свойств находится в меню «Файл» → «Настройки» → «Глобальные свойства». Это свойство можно использовать во всех проектах

$ {# System # PropertyName} — для свойства системы, которое можно найти в справке → свойства системы

$ {# Env # PropertyName} — для переменной среды

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

Та же структура

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

SoapUI — передача собственности

Иногда требуется извлечь какое-то значение из ответного сообщения и включить его в последующий запрос (ы). В таком случае у нас должен быть механизм для извлечения указанного значения и передачи его другим элементам проекта. SoapUI поддерживает такую ​​функциональность с помощью Property Transfer TestStep.

Добавление передачи собственности

Шаг 1 — Выберите TestCase или TestStep, щелкните правой кнопкой мыши → Добавить шаги → Передача свойства.

Добавление недвижимости

Шаг 2 — Введите имя TestStep и нажмите OK.

Скорость передачи

Шаг 3Шаг RateTransfer добавлен, и откроется новый мастер.

Новый Волшебник

Шаг 4 — Нажмите значок Добавить новую передачу свойства + в левом верхнем углу окна передачи свойства. Будет предложено ввести имя для передачи. Введите оценку и нажмите ОК.

Темп

Передача недвижимости

После того как передача создана, на панелях «Источник» и « Цель» необходимо указать соответствующие выражения XPath для извлечения и замены значений свойств. В раскрывающемся списке рядом с «Источником» перечислены различные уровни проектов SoapUI, которые можно использовать в качестве источника передачи свойств. По умолчанию будет показан ближайший TestStep.

В данном случае это запрос — INR в USD TestStep. В раскрывающемся списке рядом со свойством отображается свойство источника, которое используется при передаче, которое может быть либо запросом, ответом, либо конечной точкой службы.

Передача недвижимости

Шаг 1 — Выберите Ответ и перейдите к языку пути. Пользователь может выбрать XPath, Xquery или Jason для определения свойства. В этом случае выберите XPath.

Путь Язык

Шаг 2 — Чтобы получить объявление исходного XML, нажмите ns и укажите XPath.

Шаг 3 — Укажите цель, куда должно быть передано значение, извлеченное из приведенного выше выражения XPath. Целевая панель используется для этого в нижней части окна передачи свойств.

Шаг 4 — Передать извлеченное значение ConversionRateResult из ответа шага RequestINRtoUSD.

Цель — Свойства

Свойство — ConversionRate (добавлено новое свойство, изначально оно не имеет значения).

Целевая недвижимость

Шаг 5. После успешного выполнения тестового примера свойство ConversionRate обновляется на основе ответа.

Ниже приведен скриншот изначально.

Коэффициент конверсии

Ниже приведен скриншот после успешного запуска.

Успешный Бег

Аналогично, Target может быть следующим XML-запросом. Если Target является SOAP-запросом, нам нужно предоставить XPath для идентификации целевого атрибута.

SoapUI — Панель журналов

Панель журналов хранит полную информацию о транзакции между клиентом и сервером. Пользователи смогут видеть различные вкладки панели журнала. В этой главе мы обсудим наиболее часто используемые области журналов при работе с SoapUI.

Свойства транзакции

Журнал SoapUI

Журнал SoapUI отображает информацию ответа от веб-сервера. Эта же информация хранится в файле soapui.log установленной папки SOAP-UI в каталоге bin.

UI Log

Журнал HTTP

Журнал HTTP отображает всю передачу HTTP-пакетов. Вся информация в RAW отображается в журнале HTTP.

Http Packet Transfer

Журнал ошибок

Журнал ошибок отображает все ошибки, обнаруженные в течение всего сеанса проекта. Та же информация доступна в файле «soapui-errors.log», который находится в каталоге «bin» установленного местоположения SoapUI.

Журнал памяти

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

Журнал памяти

SoapUI — Утверждения

Утверждение можно интерпретировать как контрольную точку или точку проверки. Как только запрос отправлен на веб-сервер, ответ получен. Требуется проверить ответ, который содержит данные, как ожидалось или нет. Для подтверждения ответа, SoapUI имеет функцию подтверждений.

Указывает на заметку

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

  • Он сравнивает часть сообщения или все сообщение с некоторым ожидаемым значением.

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

  • После выполнения TestStep все его утверждения применяются к полученному ответу, и в случае сбоя любого из них TestStep помечается как сбойный в представлении TestCase.

  • Неудачная запись отображается в журнале выполнения теста.

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

Он сравнивает часть сообщения или все сообщение с некоторым ожидаемым значением.

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

После выполнения TestStep все его утверждения применяются к полученному ответу, и в случае сбоя любого из них TestStep помечается как сбойный в представлении TestCase.

Неудачная запись отображается в журнале выполнения теста.

Журнал выполнения

Тип утверждений

SoapUI поддерживает широкий спектр утверждений в ответ.

Ниже приведен список утверждений, поддерживаемых SoapUI.

Утверждение Описание
Содержание недвижимости
Содержит Проверяет наличие указанной строки. Он также поддерживает регулярные выражения.
Не содержит Проверяет отсутствие указанной строки. Он также поддерживает регулярные выражения.
XPath Match Использует выражение XPath для выбора целевого узла и его значений. Сравнивает результат выражения XPath с ожидаемым значением.
XQuery Match Использует выражение Xquery для выбора содержимого из целевого свойства. Сравнивает результат выражения XQuery с ожидаемым значением.
Соответствие, статус, стандарты
HTTP DOwnload All Resource Загружает все ресурсы, которые называются документами HTML (изображения, сценарии и т. Д.), И проверяет, что они все доступны. Применимо к любому свойству, содержащему HTML.
Неверные коды состояния HTTP Проверяет, что целевой TestStep получил результат HTTP с кодом состояния, которого нет в списке определенных кодов. Применимо к любому TestStep, который получает HTTP-сообщения.
Не ошибка SOAP Проверяет, что последнее полученное сообщение не является ошибкой SOAP. Применимо к SOAP TestSteps.
Соответствие схемы Проверяет, что последнее полученное сообщение соответствует определению схемы WSDL или WADL. Применимо к тестовым шагам SOAP и REST. URL определения схемы поддерживает расширения свойств (например, $ {# System # my.wsdl.endpoint} / services / PortType? Wsdl).
SOAP Fault Проверяет, что последнее полученное сообщение является ошибкой SOAP. Применимо к SOAP TestSteps SOAP Request — проверяет, является ли последний полученный запрос действительным SOAP-запросом. Применимо только к тестовым шагам MockResponse.
SOAP-ответ Проверяет, что последний полученный ответ является действительным ответом SOAP. Применимо только к шагам SOAP TestRequest.
Допустимые коды состояния HTTP Проверяет, что целевой TestStep получил результат HTTP с кодом состояния в списке определенных кодов. Применимо к любому TestStep, который получает HTTP-сообщения.
Запрос WS-адресации Проверяет, что последний полученный запрос содержит действительные заголовки WS-Addressing. Применимо только к MockResponse TestSteps.
WS-Addressing Response Проверяет, что последний полученный ответ содержит действительные заголовки WS-Addressing. Применимо только к шагам SOAP TestRequest.
WS-Security Status Проверяет, что последнее полученное сообщение содержало допустимые заголовки WS-Security. Применимо к тестовым шагам SOAP.
скрипт
Сценарий Утверждение Позволяет пользователям выполнять пользовательский сценарий для выполнения пользовательских проверок. Применимо только к TestSteps (т.е. не к свойствам)
ОАС
Ответ SLA Проверяется, было ли время ответа последнего полученного ответа в пределах установленного предела. Применимо к скриптам TestSteps и TestSteps, которые отправляют запросы и получают ответы.
JMS
Статус JMS Проверяет, что JMS-запрос целевого TestStep успешно выполнен. Применимо для запроса TestSteps с конечной точкой JMS.
JMS Timeout Проверяет, что инструкция JMS целевого TestStep не заняла больше времени, чем указанная продолжительность. Применимо для запроса TestSteps с конечной точкой JMS.
Безопасность
Конфиденциальная информация Проверяет, не содержит ли ответное сообщение конфиденциальную информацию о целевой системе. Мы можем использовать это утверждение для REST, SOAP и HTTP TestSteps.
JDBC
Статус JDBC Проверяет, что запрос JDBC целевого TestStep успешно выполнен. Применимо только к JDBC TestSteps.
JDBC Timeout Проверяет, что инструкция JDBC целевого TestStep не заняла больше времени, чем указанная продолжительность. Применимо только к JDBC TestSteps.

SoapUI — Устранение неполадок

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

Проблема: пространство имен определено неправильно. Используйте правильное пространство имен. Пространство имен должно быть URL-адресом, где расположен веб-сервис.

Решение. Если при разработке утверждения сценария выдается ошибка, используйте log.info для вывода содержимого переменных.

Проблема. Если код ошибки получен в виде XML-ответа, это может быть связано с неправильным вводом.

Решение — Проверьте ввод XML запроса.

Пример — в конвертере валют, если вход «FromCurrency» равен «123», который не существует, выход выдает код ошибки как «SOAP-клиент», что означает, что проблема связана с параметром, который передается из на стороне клиента.

Запрос

параметр

отклик

Код неисправности

Проблема — нет совпадения в текущем ответе при использовании XPath или XQuery.

Решение

  • Используйте правильный синтаксис при определении XPath или XQuery.
  • Убедитесь, что используется двоеточие, а не точка при объявлении пространства имен.
  • Убедитесь, что XPath и XQuery верны.

Не соответствует ответ

SoapUI — Тестирование производительности

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

Это означает, что необязательно должно быть то, как система работает при высокой нагрузке, это также может быть то, как она работает при базовой или ожидаемой нагрузке. Его даже не нужно структурировать, автоматизировать или создавать в TestWare, например, в SoapUI; простое обновление веб-браузера снова и снова, очень быстрое и нагрузочное тестирование.

Типы тестирования производительности

Ниже приведены типы тестирования производительности —

  • Базовое тестирование — исследует, как система работает при ожидаемой или нормальной нагрузке, и создает базовый уровень, с которым можно сравнивать другие типы тестов.

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

  • Тестирование на замачивание . Цель тестирования — убедиться, что нежелательное поведение не возникает в течение более длительного периода времени.

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

Базовое тестирование — исследует, как система работает при ожидаемой или нормальной нагрузке, и создает базовый уровень, с которым можно сравнивать другие типы тестов.

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

Тестирование на замачивание . Цель тестирования — убедиться, что нежелательное поведение не возникает в течение более длительного периода времени.

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

Ключевые аспекты в веб-сервисе

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

Первый аспект

На стороне сервера происходит обработка XML / JSON, как синтаксический анализ XML / JSON, так и сериализация . Первое, что часто терпит неудачу, — это обработка полезных данных. Причины неудачи могут быть множественными; это может быть в платформе, слабости сервера приложений, или это может быть проблема реализации в виде излишне сложных WSDL. Это также может означать, что код выполняет запрос к базе данных, которая медленно отвечает.

Аспект тестирования . Сложность парсинга полезной нагрузки XML / JSON означает, что необходимо уделять особое внимание тестированию масштабируемости. Это также означает, что WSDL должны быть тщательно изучены. Если запросы и ответы являются сложными или большими или если они содержат большие вложения, следует сосредоточиться на том, чтобы подчеркнуть сложность и посмотреть, как она ведет себя под нагрузкой.

Второй аспект

Другим часто встречающимся фактором является безопасность. Защищенные сайты за HTTPS имеют значительно более низкую производительность, и при тестировании веб-служб мы можем добавить уровень WSSecurity к уровню безопасности HTTP, еще больше снижая производительность.

Аспект тестирования — вопрос безопасности означает, что необходимо сосредоточиться на выполнении тестирования безопасных запросов. Если вся веб-служба защищена, это означает, что нагрузочное тестирование является более важным, особенно если используется WS-Security и обработка токенов.

SoapUI — нагрузочное тестирование

Нагрузочное тестирование — это особая форма тестирования производительности, которая проводится для оценки поведения системы при определенной нагрузке. В SoapUI мы обычно используем термин «нагрузочное тестирование» для всех типов нефункционального тестирования, однако SoapUI поддерживает все типы оценок производительности веб-сервисов, такие как нагрузка, стресс и выносливость.

Указывает на заметку

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

  • Основным отличием является то, что тесты производительности в SoapUI обычно создаются на основе существующих функциональных тестов. Это позволяет быстро создавать расширенные тесты производительности.

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

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

Основным отличием является то, что тесты производительности в SoapUI обычно создаются на основе существующих функциональных тестов. Это позволяет быстро создавать расширенные тесты производительности.

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

Создание нагрузочного теста

Шаг 1 — Щелкните правой кнопкой мыши по функциональному тестовому кейсу и выберите New Load Test.

Новый нагрузочный тест

Шаг 2. Введите имя Load Test и нажмите OK в мастере диалога.

Мастер Диалогов

Load Test откроется, и Load Test будет создан, как показано на следующем снимке экрана.

Тест открытой нагрузки

Выполнение нагрузочного теста

Когда создается новый нагрузочный тест, он предварительно настроен для работы в течение 60 секунд (вверху справа) с 5 потоками, используя стратегию простой загрузки.

Измените эти значения согласно требованию и Выполните. Примечание . Пользователь должен знать о конфигурации и понятиях нагрузочного тестирования.

Загрузить конфигурацию

Пользователь увидит таблицу статистики посередине, начиная со сбора данных и через 60 секунд должен завершить LoadTest.

Статистическая таблица

Добавление утверждения

Шаг 1 — В редакторе LoadTest выберите вкладку Утверждение LoadTest внизу редактора.

Нагрузочное тестовое утверждение

Шаг 2 — Нажмите кнопку «Добавить подтверждение» в строке меню «LoadTest Assertion», чтобы добавить подтверждение.

Кнопка подтверждения

Шаг 3 — Откроется диалоговое окно Add Assertion. Выберите шаг максимум. Выберите Максимум устанавливает максимальное время в миллисекундах, которое могут принимать ответы, если время превысит установленное нами, тест не пройден. Нажмите ОК.

Макс. Ошибка

Шаг 4 — Откроется окно Утверждение MaxStep Max. Как видно на следующем снимке экрана, мы допускаем максимальный отклик в одну секунду, 1000 миллисекунд. Давайте не будем ничего менять. Нажмите ОК.

Шаг Максимум

Утверждение максимального шага теперь будет успешно добавлено.

Добавлен максимум

Шаг 5 — Теперь запустите тест снова. Если ответы занимают слишком много времени, вы должны увидеть, что числа в столбце err суммируются быстро.

Столбец ошибок

SoapUI — веб-сервисы RESTful

Веб-сервис — это набор открытых протоколов и стандартов, используемых для обмена данными между приложениями или системами. Программные приложения, написанные на разных языках программирования и работающие на разных платформах, могут использовать веб-службы для обмена данными по компьютерным сетям, таким как Интернет, аналогично межпроцессному обмену данными на одном компьютере. Эта совместимость (например, между приложениями Java и Python или Windows и Linux) обусловлена ​​использованием открытых стандартов.

Веб-сервисы на основе архитектуры REST известны как веб-сервисы RESTful. Эти веб-сервисы используют методы HTTP для реализации концепции архитектуры REST. Веб-служба RESTful обычно определяет URI (Uniform Resource Identifier), который представляет собой службу, которая обеспечивает представление ресурсов, например JSON, и набор методов HTTP.

Все возможности тестирования REST SoapUI основаны на логическом представлении, известном как служба REST. Мы не должны путать это с термином «сервис», так как это не реализация сервиса, а отображение сервиса RESTful, который вызывается. Мы можем добавить как можно больше REST-сервисов в проект SoapUI. Каждый представляет определенный сервис RESTful. Они заключаются в следующем —

REST — Настройка проекта

ОТДЫХ — WADL

REST — Запрос

ОТДЫХ — Ответ

REST — методы HTTP

SoapUI — соединение JDBC

SoapUI позволяет управлять работой базы данных с помощью TestStep, который называется JDBC Request.

Шаг 1 — Щелкните правой кнопкой мыши TestStep и выберите Добавить шаг → Запрос JDBC.

Запрос JDBC

Шаг 2 — введите имя шага и нажмите ОК.

Новый Шаг

Шаг JDBC добавлен. Дважды щелкните шаг, и откроется мастер JDBC.

Мастер JDBC

Чтобы создать соединение JDBC, пользователь должен предоставить действительный драйвер и строку подключения. Эти параметры используются для определения типа базы данных и создания соединения для использования базы данных.

Для MySQL драйвером базы данных может быть com.mysql.jdbc.Driver . Аналогично, для другой базы данных есть предопределенный драйвер, который можно найти в разделе документов базы данных.

Шаг 3 — Строка подключения должна быть в следующем формате —

Jdbc:mysql://[host]:[port]/[database]?[property][=value] 

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

Например,

jdbc:mysql://localhost:8089/xxx_DB?user=root&password=root 

Шаг 4 — Нажмите «Проверить соединение». При успешном подключении будет отображаться УСПЕХ, в противном случае предоставьте подробности отказа.

Тестовое соединение

SoapUI — Недвижимость JDBC

JDBC имеет свой собственный раздел свойств Add, который можно использовать в качестве переменной в SQL Query.

Давайте посмотрим, как это ведет себя —

Предположим, SQL-запрос, который необходимо выполнить на шаге JDBC, это Select * from Currency, где CurrencyCode = ‘xxx’.

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

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

SQL-запрос будет выполняться на основе текущего значения кода свойства, а SQL-запрос будет параметризировать CurrencyCode =: Code.

Нажмите Добавить свойство + и введите имя в виде кода и укажите значение или оставьте пустым, чтобы использовать шаг Передача свойства для его предоставления.

Добавить недвижимость

SoapUI — утверждение JDBC

Запрос JDBC также может использовать большинство утверждений с SOAP-запросом TestSteps. В SoapUI большинство этих утверждений не зависят от TestSteps. Следовательно, утверждения, такие как Contains и XPath Match, могут использоваться с JDBC Request TestStep.

Нажав значок Добавить утверждение в верхнем меню JSBC Request TestStep, пользователь может узнать, какие утверждения поддерживаются TestStep.

В дополнение к общим утверждениям, есть два специальных утверждения JDBC Request TestStep —

JDBC Timeout — это утверждение можно использовать для проверки того, выполняется ли текущий запрос SQL в указанном значении свойства Query Timeout.

Статус JDBC — чтобы проверить, успешно ли выполнен оператор SQL, мы можем использовать утверждение статуса JDBC.

Статус JDBC

Чтобы установить время ожидания запроса, укажите соответствующее значение времени ожидания запроса свойства в левой части экрана. Пожалуйста, имейте в виду, он принимает значение в миллисекундах (мс).