Создание нового проекта. Обзор SoapUI
Мы попробуем создать новый проект в SoapUI для тестирования простого географического сервиса CountryInfoService, а так же рассмотрим из чего состоит проект, куда складывать параметры для параметризации и запустим первые тесты.
Так как сервис очень простой, запросов на создание объектов в нем мы не будем, но мы уже можем посылать GET запросы (реквесты), брать из ответов (респонсов) параметры и, используя эти параметры отправлять следующие запросы.
1. Создаем проект. Импортируем в него схему wsdl: http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL
2. В данном примере создаются сразу 2 схемы, для soap1.1 и soap1.2. Это разные стандарты, но для нас лично они отличаются мало и первый уже практически не используется, поэтому мы его просто удалим. Можно просто шелкнуть по нему мышью и нажать кнопку delete, либо нажать правой кнопкой мыши и выбрать в выпавшем меню remove
3. Теперь у нас есть импортированная схема проекта, в которой мы видим все методы, заложенные в схеме, описаные понятными человеческими словами и мы можем сами понять что эти методы делают (например FullCountryInfo явно возвращает полную информацию о запрошенной стране). Также в этой схеме уже созданы примеры запросов:
4. Запускаем тестовый запрос. Сразу оговорюсь - это реквест без параметров, поэтому можно запускать прямо здесь, в примерах, но порядочные люди обычно переносят запросы в тест-кейсы, чтобы в схеме шаблоны оставались девственно чистыми. Запускать запросы отсюда в процессе работы немного моветон. Но мы пока просто смотрим примеры:
Давайте по шагам проговорим что мы сейчас сделали: 1. взяли пример запроса метода из схемы. 2. Нажав на зеленую кнопочку отправили запрос к сервису. 3. Сервис обработал реквест и вернул нам респонс.
Судя по названию метода, он возвращает список континентов по коду. Информация о проекте есть тут.
В ответе мы видим список континентов, причем в каждом блоке ответа есть код и название. В следующих уроках мы будем использовать эти ответы для других запросов.
5. Также мы можем посмотреть более подробно что же мы отправили и что получили, если переключимся в raw-режим:
Мы видим куда, к какому стенду ушел запрос, видим, что пришел ответ сервиса 200, и некоторые другие нюансы. Позже это понадобится, когда мы научимся параметризовать запросы, и в xml не будет видно что именно мы отправили сервису, тогда полезно будет переключиться в raw.
Если в формате raw не отображаются данные запроса, необходимо перейти в настройки и включить валидацию респонса и реквеста:
File > Preference > Editor Settings > включить "Always validate Requests"
File > Preference > Editor Settings > включить "Always validate Responses"
7. Теперь мы создадим наш первый тест-сьют и добавим в него первый тест-кейс и уже в него первый тест. Для этого мы нажимаем правой кнопкой на проекте и выбираем "NewTestSuite". На этом этапе можно дать название сьюту, а можно оставить так. Потом мы нажимаем правой кнопкой по свежесозданному сьюту и выбираем "New Test Case", после чего, опять же, можем сразу дать ему имя. Последним шагом - добавляем запрос в кейс - выбираем нужный нам пример запроса, правой кнопкой и выбираем "Add to Test Case" - вам будет предложен выбор, в какой именно проект/сьют/кейс добавить этот запрос, но так как в данный момент выбор у нас не очень богатый, мы выбираем наш новенький набор.
.
Итак, у нас теперь есть первый проект, в котором лежит первый тест-сьют, в котором находится первый тест-кейс и в нем лежит смерть кощеева наш первый тест (точнее, не тест, а запрос метода, чтобы он стал тестом, мы должны добавить в него проверки).
Сразу совет - давать читаемые имена всем сьютам и кейсам, но имена методов оставлять неизменными. Если один и тот же метод добавляется в проект несколько раз, можно оставлять название метода и добавлять короткое описание или номер.
Вот так выглядит наш проект в данный момент (названия сьюту и кейсу можете придумать сами), переименовывать их можно, щелкнув правой кнопкой по нынешнему названию и выбрав rename).