Если вы никогда раньше не слышали про SOAP-запросы, то вам сюда ツ
Давайте рассмотрим на примере, который вы можете прямо сейчас взять и повторить. Показывать я буду на системе Users, которая находится в открытом доступе. А запросы будем посылать через бесплатный инструмент Soap Ui.
1. Запустить Soap Ui.
2. File — New SOAP Project
3. В открывшемся окне нужно указать имя проекта и его WSDL.
О, ответвернул какую-то фигню непустой! В нем мы видим переданные нами значения и какие-то новые поля, пустые (что логично, мы же их не передавали):
Проверим, правда ли пользователь создан. Снова открываем http://users.bugred.ru и ищем по email — test_soap_1@mail.ru. О, теперь результат непустой, такой пользователь существует! И автор у него — SOAP, что верно. Так и было задумано по ТЗ.
Вот, собственно, и все!
Вставили в Soap Ui WSDL-ку, и инструмент сам сгенерил нам реквесты. Выбираем любой, заполняем, отправляем! А главное — вы можете прямо сейчас повторить все то же самое (разве что другие емейл и имя пользователю дать, уникальные). Круто же? 5 минут назад впервые услышал про SOAP-запросы, а тут Р-р-р-раз, и отправил первый запрос
См также:
Освоение тестирования SOAP API — полезная статья с более подробным описанием, что такое WSDL, XSD, и других страшных слов ツ
А от меня еще пара заметок по инструменту из серии HOWTO
Это Users — открытая система. У вас в компании наверняка API будет скрыто под паролем. Для указания авторизации слева внизу запроса нажмите Auth → раскройте выпадающий список → Add New Authorization → Basic → и там уже вводите логин и пароль.
Давайте рассмотрим на примере, который вы можете прямо сейчас взять и повторить. Показывать я буду на системе Users, которая находится в открытом доступе. А запросы будем посылать через бесплатный инструмент Soap Ui.
Все то же самое, но в видео варианте
Отправить первый запроса с нуля
1. Запустить Soap Ui.
2. File — New SOAP Project
Создаем новый проект |
3. В открывшемся окне нужно указать имя проекта и его WSDL.
- Имя — это то, что будет отображаться в левой части. Не стоит давать абстрактные имена типа "Test", иначе потом у вас будет десяток проектов с одним названием и поди угадай, где какой . Мы тестируем Users, так проект и назовем. Если было бы несколько стендов, давали бы более конкретные названия: «Users TEST», «Users PREPROD», «Users PROD»...
- WSDL — фактически это ссылка, по которой вы получаете доступ к методам. Если вам нужно проверить SOAP-запросы, просите дать вам WSDL. Получаем мы ее от разработчиков, для Users это http://users.bugred.ru/tasks/soap/WrapperSoapServer.php?wsdl
Указали название и WSDL |
Вот он, проект |
5. Развернуть проект по кнопочке «+» слева от названия → мы увидим все методы, которые можно вызывать.
Список доступных методов |
6. Выберем, например, метод регистрации — doRegister. Разворачиваем его: Soap Ui при чтении WSDL сам создает базовый запрос на каждый метод. Смотрим, что внутри Request 1
Метод doRegister |
Ага, уже примерно понятно, что делает метод и как его отправить:
— регистрирует нового пользователя (понимаем из названия);
— нужно указать емейл, имя и пароль (понимаем из описания полей).
Проверим себя, прочитаем, что умеет этот метод — открываем документацию, делаем Ctrl + F по названию метода. Ну да, вроде все верно! Давайте создадим пользователя test_soap_1@mail.ru.
А как будем тестировать, что пользователь создан? Вдруг метод делает «ничего», всегда возвращая «успешно»? Проверим, что сейчас пользователя нет. Открываем http://users.bugred.ru, делаем поиск. Ничего! Пользователя пока нету)))
Проверяем, что такого пользователя пока не существует |
Пора отправлять SOAP-запрос!
7. Заполняем поля:
- email — test_soap_1@mail.ru
- name — Тестовое имя
- password — 1
Нажимаем "Отправить" — зеленая стрелочка в верхнем левом углу запроса
Отправляем запрос |
О, ответ
Ответ без ошибки! |
Не верим ответу по API. проверяем в системе |
Вставили в Soap Ui WSDL-ку, и инструмент сам сгенерил нам реквесты. Выбираем любой, заполняем, отправляем! А главное — вы можете прямо сейчас повторить все то же самое (разве что другие емейл и имя пользователю дать, уникальные). Круто же? 5 минут назад впервые услышал про SOAP-запросы, а тут Р-р-р-раз, и отправил первый запрос
См также:
Освоение тестирования SOAP API — полезная статья с более подробным описанием, что такое WSDL, XSD, и других страшных слов ツ
А от меня еще пара заметок по инструменту из серии HOWTO
Авторизоваться
Это Users — открытая система. У вас в компании наверняка API будет скрыто под паролем. Для указания авторизации слева внизу запроса нажмите Auth → раскройте выпадающий список → Add New Authorization → Basic → и там уже вводите логин и пароль.
Так добавлять авторизацию |
Это добавит авторизацию на уровне одного конкретного запроса. Если запросов много и разных, можно настроить авторизацию глобально для всего проекта — слева внизу Properties
Глобальные настройки |
Туда можно даже подставлять всякие переменные, но сейчас мы не будем копать так глубоко ツ
Переименовать запрос
Тыкнуть на запрос — F2.
Или правой кнопкой мыши — Rename.
И даем более осмысленное название, например, «Успешная регистрация»
Переименовать запрос |
Клонировать запрос
Тыкнуть на запрос — F9.
Или правой кнопкой мыши — Clone Request.
Клонировать запрос |
Очень полезная опция, когда мы хотим изменить что-то одно и иметь под рукой комплект тестов. Клонируем успешную регистрацию, делаем ей название «Уже существующий email» или другое название. Зависит от того, какую именно проверку вы хотите провести.
Например, метод UpdateUserOneField — он позволяет отредактировать только одно поле пользователя. А самих полей у нас много! Поэтому создаем первый тест, например, на дату рождения. А потом клонируем, меняя название и содержание. Проверяем все поля:
- hobby
- name
- ...
Полный список полей можно подсмотреть в методе FullUpdateUser.
При клонировании у вас и авторизация тоже клонируется, так что обычно удобнее клонировать существующий запрос, чем создавать новый.
Создать новый запрос
Тыкнуть на метод (не запрос, а уровнем выше) — Ctrl + N.
Или правой кнопкой на название метода → new request.
Это будет запрос, сформированный на основании XSD. С пустыми полями и без авторизации. Тот, который мы заполняли в первом разделе этого блог-поста.
См также:
Освоение тестирования SOAP API — напоминаю ссылочку с описанием, что такое XSD ツ
Тестирование SOAP-сервиса с помощью SoapUI — как сэмулировать сервис, если реальный еще не готов
Postman – ваш помощник в тестировании API — POST / GET запросы на реальном примере
Освоение тестирования SOAP API — напоминаю ссылочку с описанием, что такое XSD ツ
Тестирование SOAP-сервиса с помощью SoapUI — как сэмулировать сервис, если реальный еще не готов
Postman – ваш помощник в тестировании API — POST / GET запросы на реальном примере
Домашнее задание
Попробуйте создать пользователя в Users через SOAP! Или поисследуйте другие SOAP-методы приложения, это придаст уверенности в своих знаниях =)
PS — статья написана в помощь студентам моего курса «Тестирование REST API»
Добавлена на Testbase в навык использования инструментов. Теперь не потеряется!
Статья прекрасна, спасибо огромное!
ОтветитьУдалитьСпасибо за отзыв! :)
УдалитьОльга, спасибо за прекрасное объяснение и предоставление такого сервиса для тренировок. Хотел бы спросить, как мне редактировать свой профиль через завпросы, если я залогинился через соц.сеть? e-mail'а то нет. :)
ОтветитьУдалитьНе за что) Ну, раз нет емейла, значит никак) Вы же логинились не через запросы
УдалитьСервис не работает.
ОтветитьУдалитьError loading [http://users.bugred.ru/tasks/soap/WrapperSoapServer.php?wsdl]: java.lang.Exception: Failed to load url; http://users.bugred.ru/tasks/soap/WrapperSoapServer.php?wsdl, 0
Работает сервис, иначе бы ГУИ не открывался. WSDL тоже прекрасно читается
УдалитьУ нас проблема в том что soapUI не генерирует запросы из XML
УдалитьZdravstvuite, u menia taje problema. :)
ОтветитьУдалить