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 структуры
  • Писать 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 методы.

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

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