SoapUI остаётся незаменимым инструментом для enterprise API-тестирования: согласно SmartBear API Testing Report 2024, SOAP-протокол обслуживает 22% трафика enterprise-интеграций, а SoapUI используют как основной инструмент 41% QA-специалистов в крупных организациях. Инструмент выделяется полной поддержкой WSDL — автоматически парсит все операции, генерирует sample requests и обрабатывает XML namespaces без ручной настройки. В отличие от Postman, SoapUI изначально проектировался под сложные SOAP-сценарии: вложенные XML-структуры, WS-Security, динамические mock-сервисы. Для REST-тестирования он также функционален: JSONPath assertions, OAuth, data-driven тесты с CSV и Groovy scripting для сложной логики. Это руководство охватывает полный цикл работы с SoapUI — от импорта WSDL до запуска тестов в CI/CD-пайплайне — с практическими примерами для команд, работающих с SOAP и REST.

TL;DR

  • SoapUI тестирует REST и SOAP API через GUI-интерфейс
  • Создай проект → добавь сервисы (WSDL/REST) → построй test suites → добавь assertions
  • Assertions валидируют ответ: contains, XPath, JSONPath, статус-коды
  • Data-driven тестирование читает данные из файлов (CSV, Excel, БД)
  • Mock-сервисы симулируют API для тестирования без реальных бэкендов

Идеально для: Enterprise SOAP тестирование, сложные API workflow, команды с GUI-инструментом Пропусти, если: Тестируешь только простые REST API (Postman проще) Время чтения: 14 минут

Твоя интеграция использует SOAP-сервисы. WSDL имеет 50 операций. Нужно тестировать сложные request/response паттерны с XML namespaces. Postman чувствуется неуклюжим для этого.

SoapUI был создан для SOAP. Он парсит WSDL, генерирует запросы, обрабатывает XML namespaces. REST поддержка пришла позже, но работает хорошо.

Что такое SoapUI?

SoapUI — инструмент тестирования API для веб-сервисов. Работает с SOAP (полная WSDL поддержка) и REST API через десктоп-приложение.

Почему SoapUI:

  • SOAP экспертиза — парсит WSDL, обрабатывает namespaces
  • REST поддержка — JSON/XML, OAuth, современные API
  • GUI-based — визуальное построение тестов
  • Mock-сервисы — симуляция API
  • Data-driven — параметризованное тестирование

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

Импорт WSDL

File → New SOAP Project
Project Name: PaymentService
Initial WSDL: https://api.example.com/payment?wsdl

SoapUI автоматически парсит все операции и создаёт sample requests.

SOAP Assertions

Contains:

Content: <status>SUCCESS</status>

XPath Match:

XPath: //pay:transactionId
Expected: exists

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

REST Request

Method: POST
Endpoint: https://api.example.com/users
Headers:
  Content-Type: application/json
  Authorization: Bearer ${token}

Body:
{
    "name": "John Doe",
    "email": "john@example.com"
}

REST Assertions

JSONPath Match:

JSONPath: $.id
Expected: exists

Valid HTTP Status:

Status Codes: 200,201

Test Suites

Структура тестов

Project
└── TestSuite: User Management
    ├── TestCase: Create User
    │   ├── REST Request: POST /users
    │   └── Assertion: Status 201
    └── TestCase: Get User
        ├── REST Request: GET /users/{id}
        └── Assertion: JSONPath $.name exists

Property Transfer

Передача данных между шагами:

Source: Create User Response
Property: Response
Path: $.id

Target: Get User Request
Property: userId

Mock-сервисы

Создание Mock

  1. ПКМ на сервисе → Generate Mock Service
  2. Настрой ответы для операций
  3. Запусти mock-сервис

Динамический Mock (Groovy)

def requestId = mockRequest.requestContent.id

def response = """
{
    "id": ${requestId},
    "name": "User ${requestId}"
}
"""

return response

Groovy Scripting

Post-Response Script

import groovy.json.JsonSlurper

def response = context.expand('${Create User#Response}')
def json = new JsonSlurper().parseText(response)

testRunner.testCase.setPropertyValue("userId", json.id.toString())

Командная строка

# Запуск test suite
testrunner.sh -s "TestSuite Name" project.xml

# С параметрами
testrunner.sh -Pbaseurl=https://staging.example.com project.xml

«SoapUI — это не устаревший инструмент, а специализированный. Если работаешь с SOAP и WSDL, он сэкономит часы разбора XML вручную. Для чистого REST — возможно, есть более удобные альтернативы.» — Yuri Kan, Senior QA Lead

SoapUI с помощью ИИ

Что ИИ делает хорошо:

  • Генерировать вариации тестовых данных
  • Объяснять SOAP/WSDL структуры
  • Писать Groovy скрипты для assertions

Что требует людей:

  • Понимание бизнес-правил
  • Проектирование тестовых сценариев
  • Отладка сложных XML namespaces

FAQ

Что такое SoapUI?

SoapUI — популярный инструмент тестирования API для REST и SOAP веб-сервисов. Изначально создан для SOAP с полной WSDL поддержкой, теперь работает и с REST. GUI для построения тестов, assertions для валидации, mock-сервисы и Groovy скриптинг.

SoapUI бесплатный?

SoapUI Open Source полностью бесплатный. Включает REST/SOAP тестирование, assertions, mock-сервисы и Groovy. ReadyAPI (бывший SoapUI Pro) — платное ПО с дополнительными функциями.

SoapUI vs Postman — что лучше?

Postman проще, современнее и лучше для REST API. SoapUI превосходит в SOAP-сервисах, сложной работе с XML и enterprise-сценариях. Если работаешь с SOAP или нужны продвинутые mock-сервисы — SoapUI. Для REST-команд — Postman обычно лучше.

Может ли SoapUI тестировать REST API?

Да. Несмотря на SOAP-ориентированное название, SoapUI хорошо работает с REST. Поддерживает JSON/XML ответы, JSONPath assertions, OAuth/bearer аутентификацию и все HTTP методы.

Официальные ресурсы

Смотрите также