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
- ПКМ на сервисе → Generate Mock Service
- Настрой ответы для операций
- Запусти 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 методы.
Официальные ресурсы
Смотрите также
- API Testing Tutorial - Основы тестирования API
- Postman Tutorial - Тестирование REST API
- REST Assured Tutorial - Java API тестирование
- API Security Testing - Основы тестирования безопасности
