Что такое SOAP API

SOAP API, SOAPUI, тестированиеВас взяли тестировать SOAP API, а вы ни сном ни духом об этом? Не страшно, или по крайней мере не так страшно тестирование SOAP, как его могло нарисовать воображение новенького в этой области.

Для начала я расскажу что такое SOAP API, и потом, в следующих статьях, будут подробности про SOAPUI - инструмент, которым все это можно тестировать (хотя, тестировать еще можно при помощи JMeter, но это если хочется чего нибудь остренького, с изысками и сложностями).

SOAP это протокол, в простонародье - Simple Object Access Protocol (Простой Протокол Доступа к Объектам), или, другими словами, это определение того, как веб-сервисы взаимодействуют друг с другом или взаимодействуют с клиентскими приложениями, которые их вызывают. А API это Application Programming Interface - программный интерфейс приложения. А интерфейс это совокупность методов и правил взаимодействия. Собственно все вместе - SOAP API - это веб-сервис, созданный на основе SOAP, использующий преимущества создания веб-протоколов, таких как HTTP и его XML, которые работают во всех операционных системах, поэтому его разработчики могут легко манипулировать веб-сервисами и получать ответы, не заботясь о языке и платформах.

Что в нем хорошего? Это стандартизированный протокол для передачи сообщений между клиентом и веб-сервисом, а там где есть стандарты, там есть достаточная простота проверок. Было бы здорово со временем познакомиться с тем, что такое XML(язык разметки), XSD(язык схемы данных), но это все позже, для начала нужно разобраться с тем, что такое wsdl.

WSDL - это описательный язык, основанный на языке разметки XML, и именно в wsdl описан веб-сервис, который вам придется тестировать. WSDL включает в себя информацию о местоположении сервиса, часто включает в себя XSD. Именно из WSDL SOAPUI генерирует проверяемые классы.

Если Вы направите в веб-сервис нестандартный запрос, он ответит на это ошибкой. WSDL - это свод правил общения с вашим сервисом, соблюдая которые вы сможете с этим сервисом коммуницировать. Собственно WSDL и XSD подробно описывают что и в каком виде слать на сервер, чтобы получить хороший ответ.

Как я уже писала выше, протокол SOAP помогает клиенту и серверу обмениваться достаточно произвольными (но в заранее оговоренной форме) сообщениями в формате XML, причем это обмен не только простыми типами, но и коллекциями, объектами, коллекциями объектов. Т.е. в запросе может быть пять объектов типа "Человек", у каждого объекта несколько полей (пол, возраст, глубина внутреннего мира в метрах и т.п.), часть этих полей будет обязательной, часть нет, но все это будет описано в схеме.

Что хорошего в SOAP? Несколько видов автоматической валидации, которую даже проверять не придется, так как сервис будет падать если что не так (и падать с понятными ошибками). Стандарты - если ты посылаешь подходящий по стандарту запрос, то ты получишь (при условии правильно работающей логики) стандартный ответ.

Что плохого в SOAP? Количество вариантов описания схем - на одном проекте это делается по одному шаблону и вы привыкаете к этому, вы точно знаете, что, как, куда слать. А на другом проекте все будет настолько подругому, что вы почувствуете себя полным джуном. Даже на этом сайте - я покажу на одних примерах, а когда вы начнете тестировать свой проект, окажется, что там все совершенно не так устроено.

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

На этой торжественной ноте я отправлю вас в интернет, почитать подробнее про XML, WSDL, XSD, SOAP и вообще про веб-сервисы. Потому, что нет смысла много тут расписывать - все это описано до меня. А я пойду создавать уроки по использованию SOAPUI, так как их катастрофически мало в интернете, а те, что есть - в основном видео на индийском английском.

Официальная информация про SOAP (как тестировщику она вряд ли понадобится, но как человеку любопытному может) тут.


© 2019 YU-GO.RU