На чем тестировал SOAP API?

«На чем тестировал SOAP API?» — вопрос из категории API тестирование, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для тестирования SOAP API я в основном использовал SoapUI и Python с библиотекой Zeep.

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

  • Автогенерация скелета тестов из WSDL.
  • Удобные assertions для проверки XML-ответов (XPath, XQuery).
  • Возможность создания сложных сценариев с передачей данных между шагами (Property Transfer).
  • Нагрузочное тестирование в SoapUI Pro.

Python + Zeep использовал для интеграционного тестирования в CI-конвейере и для более гибких проверок.

from zeep import Client, Settings
import pytest

# Настройка клиента с таймаутами
settings = Settings(strict=False, xml_huge_tree=True)
client = Client('http://example.com/Service?wsdl', settings=settings)

# Тест вызова метода
@pytest.mark.api
def test_soap_get_user():
    response = client.service.GetUser(userId=123)
    # Проверка структуры и значений ответа
    assert response.User.Name == "Иван Иванов"
    assert response.User.Active is True
    # Проверка с помощью XPath, если нужно
    # ...

# Проверка SOAP Fault
with pytest.raises(Exception) as exc_info:
    client.service.GetUser(userId=-1)
assert "Invalid userId" in str(exc_info.value)

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