четверг, 25 мая 2023 г.

SoapUI

SOAP  - начало знакомства здесь https://dmitrybvita.blogspot.com/2022/02/soap.html

Статьи

SoapUI: тестирование SOAP и REST API

Что такое API

По стандартному определению, «программный интерфейс приложения», программный «посредник» между приложениями. API состоит из набора правил взаимодействия, описывающих как приложение работает с другими приложениями. Иначе говоря, API — это механизм обмена данными (функциями) между приложениями.

Когда приложению нужны данные из другого приложения (или нужно отправить свои данные в другое приложение), происходит взаимодействие через API. Чаще всего приложению нужно запросить срабатывание сервиса (то есть какой-то «внешней функции») другого приложения. Суть API — не в взаимодействии с пользователем через пользовательский интерфейс, а в взаимодействии на уровне программа-программа.

Тестирование API

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

Тестирование API не затрагивает пользовательский интерфейс, не касается «вида и ощущений» от продукта. Тестировщик программно эмулирует данные и сценарии взаимодействий. Фокус — на функциональности, а не на user experience, как в других видах тестирования, «обращенных к пользователю».

Что такое Soap UI

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

  • Функциональное тестирование API. Проверка общей функциональности приложения (работает ли в соответствии с функциональными требованиями). 
  • Регрессионное тестирование API — проверка того, что изменения/багфиксы не повредили существовавшую функциональность системы.
  • Совместимости API — что система отвечает требованиям по совместимости API с другими системами и стандартами, возможности работы на других платформах и т.п.
  • Нагрузочное тестирование API — проверка работы API в условиях стандартной рабочей и повышенной нагрузки.

Применение Soap UI

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

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

  • Очень мощный инструмент функционального тестирования API
  • Перетаскивание мышкой, ускоряющее создание скриптов
  • Поддерживает дебаг автотестов
  • Поддержка Data-Driven-тестирования
  • Поддержка нескольких тестовых окружений: переключение между QA-, Dev- и Prod-окружениями
  • Продвинутые тестовые сценарии с кастомным кодом

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

  • Есть возможности делать полный набор тестов проверки уязвимостей
  • Предотвращает SQL-инъекции
  • Проверка на переполнение буфера большими документами
  • Проверка на XSS-уязвимости при передаче параметров
  • Поддержка fuzzy-сканирования и сканирования граничных значений

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

  • Нагрузочное тестирование при помощи LoadUI-Агентов
  • Режимы объемного и нагрузочного тестирования
  • Продвинутые функции репортов и записи параметров нагрузки
  • Сквозное нагрузочное тестирование

Тестирование совместимости

  • Тестирование аутентификации (сертификатов) и совместимости в различных системах.

Регрессионное 

  • Анализ багов и проблем в веб-сервисах (повторная верификация после модификаций сервисов).


Архитектура SoapUI


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

  • Файлы конфигурации тестов. Тестовые данные, ожидаемые результаты, переменные для подключения к базам данных, и другие переменные и данные для тестирования.
  • Third-party API. Сторонние API для оптимизации тестового фреймворка. В частности JExcel API для интеграции с Microsoft Excel, для создания DDT-фреймворка.
  • Selenium. JAR-файл Selenium для автоматизации
  • SoapUI Runner для запуска автотестов из командной строки.
  • Groovy-библиотека для написания сценариев на Groovy.
  • Свойства (Properties). В Свойствах хранятся динамически генерируемые данные. Например, для конфигурирования SSL и других параметров безопасности.
  • Репорты (отчеты), в стиле JUnit, плюс JasperReports для оформления.

Какие протоколы поддерживает SoapUI
  • SOAP
  • WSDL
  • REST
  • HTTP(S)
  • AMF
  • JDBC
  • JMS

SoapUI и Selenium — сравнение

см. на сайте

SoapUI и Postman — сравнение

см. на сайте

Импорт коллекций из Postman

см. на сайте

Тестирование SOAP и REST в Soap UI

Есть два типа архитектуры веб-сервисов, которые тестирует SoapUI: SOAP и REST.

SOAP

То есть SOAP-протокол поверх HTTP. Эти сервисы типа HTTP POST, передающие данные в XML-формате в запросе и ответе. Все запросы идут на один и тот же URL, и могут быть добавлены специальные заголовки или XML-элементы в тело запроса, выполняющие нужные операции. SOAP-сервисы используют WDSL-описания (о них далее).

REST

Использует HTTP. Операции выполняются с использованием комбинаций HTTP-методов и имени запрошенного ресурса.

POST/GET-запросы могут добавлять информацию или доставлять данные из/в базу данных.

SOAP-сервисы используют WADL-описания (о них далее), Swagger (Open API) и другие.

Что такое WSDL

Web Services Description Language — язык описания веб-сервисов, указывающий путь к сервису и его методы, используя XML-элементы <types>, <message>, <portType> и <binding>.

Что такое WADL

Язык Web Application Description Language. Аналог WSDL-файла из примера выше. Применяется для REST-сервисов. 

Assertion (или assert, или утверждение) — утверждение/предположение о правильности какого-либо условия. В QA эта концепция применяется в качестве «точки проверки» условия (точка валидации). 

далее 




Коротко про API
API (англ. application programming interface) набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах (Wikipedia). То есть API даёт возможность использовать чужие наработки в своих интересах. Есть два подхода к построению программного интерфейса веб-приложений: REST (RESTful) API и SOAP API.

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

Сначала необходимо импортировать проект, если есть в наличии, либо создать его на основе WSDL:
1. создаем новый проект file→ New soapUI Project. Указываем Project Name и Initial WSDL/WADL.

2. Импортировать проект file→Import Project. Выбираем необходимый файл в формате xml. Обратите внимание: проставили галочку на создание TestSuite!

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

далее лучше читать в самой статье

Видео

Веб-сервисы - это веб API для веб приложений

WSDL - описывает структуру веб-сервиса и какие данные принимают на вход, и как их использовать
SOAP веб-сервисы само-документируемы
REST веб-сервисы не само-документируемы



SoapUI - это удобное приложение для быстрого тестирования веб-сервисов для сервис-ориентированных архитектур (SOA) и передачи состояний представлений (REST). Его функциональные возможности включают проверку веб-службы, запуск, разработку, моделирование и макетирование, функциональное тестирование, тестирование нагрузки и соответствия. Программное обеспечение Eviware также разработало коммерческую версию SoapUI Pro , которая в основном фокусируется на функциях, предназначенных для повышения производительности
SOAP UI  тестирование REST. Использование GROOVY. Groovy - язык сценариев в  SOAP UI.
http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL
https://petstore.swagger.io/
https://petstore.swagger.io/v2/swagger.json
def gcase = testRunner.testCase.getPropertyValue('iso')
log.info gcase

Продолжение следует






Комментариев нет:

Отправить комментарий