4.3. Тестирование Web-сервисов

Назад: 4.2 Нагрузочное тестирование Web-приложений Содержание Дальше: 4.4 Тестирование Flash, Flex и Silverlight приложений

Эта глава изначально была опубликована на сайте Automated Testing Service Group и здесь приводится практически без изменений. Автор: Николай Колесник.

Веб-сервисы – достаточно распространенный вид компонент распределенных систем. Фактически это один из интерфейсов удаленного вызова процедур. То есть, из некоторой программы мы можем отправить запрос на выполнение некоторой операции на стороне сервера и получить результат выполнения операции, при этом графический интерфейс не задействован. Подобные компоненты позволяют реализовать интеграцию между различными системами, которые изначально между собой не связаны. Отчасти это делает веб-сервисы достаточно популярными, как результат – они используются в достаточно большом количестве приложений, а это в свою очередь влечет необходимость их тестировать, в том числе и автоматически. Для этой задачи есть и специальные средства, наподобие soapUI, но помимо этого возможность тестирования веб-сервисов имеется и в TestComplete. В TestComplete, начиная с 6-й версии как раз была добавлена возможность тестирования веб-сервисов. Рассмотрим, как это реализуется и каким образом можно проверить веб-сервисы.

В окне Project Explorer-а кликаем правой кнопкой мыши и выбираем из выпадающего меню Add > New Item. Появится окно со списком доступных для создания элементов. В этом списке находим Web Services и жмем ОК. В результате в нашем проекте появится раздел WebServices, куда в дальнейшем мы будем добавлять наши веб-сервисы.

В целях демонстрации работы с веб-сервисами мы воспользуемся веб-сервисами Jira, описания которых доступны по адресу http://jira.atlassian.com/rpc/soap/jirasoapservice-v2 . Это общедоступный ресурс, который используется в целях ознакомления. Итак, добавим данный веб-сервис. Для этого на элементе WebServices сделаем клик правой кнопкой мыши и в выпадающем меню выберем Add > New Item. В списке возможных типов элементов будет только элемент типа веб-сервис. Кликаем на нем, задаем имя нового веб-сервиса, например, JiraSOAP и нажимаем ОК. В результате у нас появляется новый элемент в разделе WebServices. Сделаем на нем двойной клик. В результате отображается форма:
 

Эта форма пока что пустая, так как мы не задали необходимых реквизитов, как путь к файлу с определениями веб-сервисов, а также имя используемого сервиса. Напротив пункта Web Service Definition URL кликаем на кнопку Select. Появляется диалог вида:
 

В поле с указанием “Specify the location of the WSDL document” вводим адрес описания нашего веб-сервиса, в нашем случае это http://jira.atlassian.com/rpc/soap/jirasoapservice-v2 . После ввода адреса, нажимаем на кнопку Get Services, чтобы был извлечен список доступных сервисов. Получится что-то наподобие такого:
 

Для Jira есть всего один веб-сервис JiraSoapServiceService, в списке сервисов выбираем его и кликаем на кнопку ОК. Всё, наш сервис добавлен, теперь форма веб-сервиса имеет такой вид
 

Как видно, все поля заполнены значениями, указывающими адрес сервиса, имя сервиса, а также внизу появились описания типов и методов выбранного сервиса.

Всё, теперь мы можем вызывать имеющиеся веб-сервисы. Сохраним все файлы и создадим новый скриптовый юнит. Назовем его JiraTest. В этом юните создадим функцию вида:

function WebServicesSample()

{
      ;
}

Теперь попробуем воспользоваться подключенными веб-сервисами. Для примера залогинимся в Jira и выйдем оттуда. Посмотрим на эти функции. Кликнем еще раз на недавно созданный веб-сервис и посмотрим на список методов:
 

Нужные нам методы находятся рядом и мы можем их просмотреть вместе. Итак, метод login принимает 2 параметра-строки ( непосредственно логин и пароль ) и возвращает строку – token, который представляет собой своего рода идентификатор сессии. Практически все остальные методы данного веб-сервиса используют его в качестве первого параметра. Соответственно, метод logout принимает этот самый token, чтобы завершить сессию пользователя. Ссылка на веб-сервис, с которой мы работаем в данном примере – это ссылка на тестовый сайт Jira, в котором помимо всего прочего есть зарезервированный пользователь soaptester с паролем soaptester специально для тестирования доступа к Jira через SOAP. Соответственно, будем заходить под этим пользователем. Если мы вернемся к скриптовому юниту JiraTest, перейдем к созданной выше функции WebServiceSample, наберем WebServices. и нажмем Ctrl + Space, то в выпадающем меню мы получим следующее:

Фактически во встроенный объект был добавлен объект JiraSOAP, содержащий все функции добавленного нами веб-сервиса. Используя его, мы уже вызываем нужные нам методы, в нашем примере это login и logout. Тогда тело функции WebServiceSample имеет вид:

function WebServicesSample()

{
      var login = “soaptester”;
      var password = “soaptester”;
 
      var token = WebServices.JiraSoap.login( login , password );
      WebServices.JiraSoap.logout( token );
}

Как видно из примера, ничего сложного работа с веб-сервисами в TestComplete не представляет. Просто создается интерфейс доступа к нужным методам, всё остальное сводится к знанию спецификаций используемых веб-сервисов.

Назад: 4.2 Нагрузочное тестирование Web-приложений Содержание Дальше: 4.4 Тестирование Flash, Flex и Silverlight приложений