Playing with SoapUI

    При разработке веб сервисов вы работаете по двум основным направлениям: пишете серверную часть или/и клиентский код. В любом случае вам нужны обе части приложения для тестирования. Многие разработчики пишут тестовых клиентов/сервера вручную, что не является оптимальным решением. Те же самые цели можно решить при помощи популярного пакета 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
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 1

      0
      в адресе небольшая ошибочка (H)ttp://www.webservicex.net/WeatherForecast.asmx?WSDL
      (и может стоит сделать ссылкой, ведь в оригинале так и сделано)

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое