Как стать автором
Обновить

Playing with SoapUI

Время на прочтение 2 мин
Количество просмотров 14K
При разработке веб сервисов вы работаете по двум основным направлениям: пишете серверную часть или/и клиентский код. В любом случае вам нужны обе части приложения для тестирования. Многие разработчики пишут тестовых клиентов/сервера вручную, что не является оптимальным решением. Те же самые цели можно решить при помощи популярного пакета soapUI. SoapUI может работать и как тестовый клиент и как тестовый сервис — на основе предоставляемых ему wsdl.

Попробуем реализовать интересный пример: возьмем wsdl от любого интернетовского веб сервиса, запустим две копии soapUI, сконфигурируем одну как клиента и другую как сервер. Этот пример покажет основные моменты работы с soapUI.


Выберете любой веб сервис доступный в интернет. Для этого примера я задал поиск в google: 'get weather wsdl' и получил url: www.webservicex.net/WeatherForecast.asmx?WSDL
Сохраните его как sample.wsdl, заодно убедитесь что сервис живой (выше указанный рабочий на июль 2009)

Начнем с эмуляции клиента.
Запустите soauUI и создайте новый клиент. Назовите проект client и выберите wsdl сохраненный ранее. Остальные настройки оставьте по умолчанию.
После создания клиента в дереве проекта вы увидите все операции из сервиса, в частности GetWeatherByZipCode. Кликнете на операцию дважды, чтобы увидеть тело запроса, и откройте этот запрос (Request1).

Как вы видите soapUI создал шаблон запроса с знаком вопроса вместо данных. Так же обратите внимание на toolbar окна — там указан путь к сервису в интернет. В теле запроса укажите реальный ZIP — например 07203; и запустите операцию зеленой стрелкой… Через секунду вы получите ответ от сервера, и soapUI покажет тело ответа в правой вкладке.
Теперь вы можете работать с удаленным сервером напрямую, но нам интересна работа с mock service и нам надо его создать…

Откройте еще одну копию soapUI. Создайте такой же проект, только с именем Server. Для создание сервиса сделайте правый клик на дереве операций (WeatherForecastSoap в этом примере) и выберите — Generate Mock Service.
В открывшемся окне можно указать порт, который будет слушать сервис; путь и операции — оставьте все значения по умолчанию и сохраните настройки.
В дереве проекта вы увидите ветку сервиса с поддерживаемыми операциями. Кликнете на GetWeatherByZipCode, что бы увидеть его содержание. Так как мы делаем сервис, то, в отличии от клиента, мы увидим Response1 — эти данные уходят клиенту при запросе. Как и для Request1 сами данные заменены на зеак вопроса. Попробуйте заменить их на действительные значения. Теперь запустите сервис и soapUI начнет слушать запросы.

Вернемся в окно soapUI с клиентом. Request1 все еще открыт. Кликнете на URL в toolbar окна и добавьте новый адрес: localhost:8088/mockWeatherForecastSoap — возможно вам надо будет изменить порт или путь.
После добавления адреса запустите клиента. В качестве ответа вы увидите ваши данные, которые вы вели в Response1.

В итоге, у вас есть серверная и клиентская часть на основе единого wsdl, и вы можете тестировать операции. В реальной жизни пример не представляет интереса, так как клиент или сервер должны быть реальными системами. Но это пример неплохой старт для изучения soapUI и автоматизированного тестирования web services.

English version: romanenco.com/soapui
Теги:
Хабы:
+1
Комментарии 1
Комментарии Комментарии 1

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн