Ответ
WSDL (Web Services Description Language) — это XML-документ, который описывает контракт SOAP-веб-сервиса. Он служит формальной спецификацией, определяющей, как взаимодействовать с сервисом.
Что описывает WSDL:
- Типы данных (types): Сложные структуры данных, используемые в запросах и ответах (определяются с помощью XML Schema - XSD).
- Операции (operations): Конкретные действия, которые можно выполнить (например,
getUser,createOrder). - Сообщения (messages): Структура входящих и исходящих сообщений для каждой операции.
- Порты (ports) и привязки (bindings): Технические детали: протокол (SOAP/HTTP, SOAP/JMS) и адрес конечной точки (endpoint).
Пример фрагмента WSDL, описывающего операцию getUser:
<wsdl:definitions targetNamespace="http://example.com/user">
<wsdl:types>
<xsd:schema>
<xsd:element name="getUserRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="userId" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="getUserInput">
<wsdl:part name="parameters" element="tns:getUserRequest"/>
</wsdl:message>
<wsdl:portType name="UserServicePortType">
<wsdl:operation name="getUser">
<wsdl:input message="tns:getUserInput"/>
</wsdl:operation>
</wsdl:portType>
</wsdl:definitions>
Применение в QA и автоматизации:
- Понимание контракта: WSDL — главный источник истины для тестировщика. По нему можно понять, какие запросы допустимы и какие ответы ожидать.
- Генерация запросов: Инструменты вроде SoapUI, Postman (для SOAP) или библиотеки (
zeepдля Python,JAX-WSдля Java) могут импортировать WSDL и автоматически создавать шаблоны запросов. - Валидация ответов: Автоматические проверки могут валидировать структуру и типы данных в ответах сервера на соответствие XSD-схеме из WSDL.