🏠 | 💻 PC | 🔨Тестирование ПО |

SOAP UI

Как отправлять запросы

New REST Project → Пишем URI → Запрос создаётся, можно добавлять новые.

Method можно выбирать из выпадающего списка. Проект имеет иерархическую структуру.

Project → Service → Resource → Method → Request

Названия отражают суть:

Request (запрос) это то место, где можно поменять тело запроса и просмотреть ответ сервера. Чтобы отправлять запросы нужно нажимать зелёный треугольник.

Method (метод) указывает GET, POST, PUT или другой метод, который Вы будете использовать. Все дочерние запросы будут иметь один и тот же Method.

Resourse (ресурс) отвечает за ту часть URL, которая добавляется к базовой.

Service (сервис) отвечает за базовую часть URL

Как сохранять проекты

Советую помимо использования «Save all projects» закрывать все новые окна вручную. Тогда SOAP UI предложит Вам сохранить каждый проект по отдельности. После того, как все новые проекты сохранены, Вы можете закрыть SOAP UI. Я стараюсь закрывать SOAP UI только когда все окна закрыты.

Создание Test Suit in SOAP UI

→Правый клик Project

→ Create New TestSuit (CTRL + T)

→ Укажите имя для TestSuit

→ Правый клик на TestSuit

→ New TestCase (CTRL + N)

→ Укажите имя для TestCase

→ Expand Test Case

→ Кликните на Test Steps

→ Add Step

→ Выберите request (e.g. SOAP Request)

→ Укажите имя для new step

→ Выберите операцию, которая запускает request

→ Добавьте Request в TestCase (OK)


Зелёная «+» иконка плюса появится наверху. Кликнув на неё Вы можете добавить Assertions.

SOAP UI New Test Suite

Specify name of TestSuite

New TestCase

Specify name of TestCase

Assertions в SOAP UI

Assertions добавляются в TestSuits поэтому, чтобы добавлять Assertions нужно создать хотя бы один TestSuit и затем кликнуть на зелёную+ иконку.

SOAP UI assertion types

Затем Вы можете выбрать однин из многих доступных в SOAP UI типов assertion.

SOAP UI assertion types

Property Content → Contains

ВыберитеContains. С помощью этого подтверждения (assertion) можно искать присутствует ли в ответе заранее определённое ключевое слово. Оно поддерживает регулярные выражения и применимо ко всем ответам.

Specify unique name of Assertion
SOAP UI assertion types
Type in content that you expect to receive in case of successfull request
Contains Assertion

Property Content → Not Contains

Выберите Not Contains. С помощью этого подтверждения (assertion) можно проверить отсутствие в ответе заранее определённого ключевого слова. Оно поддерживает регулярные выражения и применимо ко всем ответам.

Введите уникальное имя для Assertion
SOAP UI assertion types
Type in content that you definitely do not want to receive in the response
Contains Assertion

Compliance, Status and Standards

SOAP Response

Choose SOAP Response. With this assertion you can check that the last received response is a valid SOAP Response. It is applicable only to SOAP TestRequest Steps only. Do not try to use it with REST.

Double click on the Assertion. It does not require any additional parameters and can be added to the test step only once.
SOAP Request assertion

Compliance, Status and Standards

Valid HTTP Status Code

Choose Valid HTTP Status Code. With this assertion you can check that the last received response is a valid SOAP Response. It is applicable only to SOAP TestRequest Steps only. Do not try to use it with REST.

Valid HTTP Status Code assertion
Type in the HTTP Status Codes that are appropriate for your request.

Usually it is 200 but you need to read system specification to be sure.

Valid HTTP Status Code assertion

SLA → Response SLA

Choose Response SLA. With this assertion you can validate that the last received response time was within the defined limit. It is applicable to Script TestSteps And TestSteps that send requests and receive responses.

Response SLA assertion
Specify the maximum response time (ms)

If response time is not mentioned in the spec add some reasonable time.

Specify the maximum response time assertion

Property Content → XPath Match

Choose XPath Match. This Assertion uses an XPath expression to select content from the target property and compares the result to an expected value. Applicable to any property containing XML.

Click Declare

To verify that the property is present in the response type in exists (//property_name)

Type in true to the Expected Result field.

Specify XPath expression and expected result

To validate property's value put path to the propery (full path or property's name - both options are acceptable)

Type in the expected property value to the Expected Result field.

Specify XPath expression and expected result

When, for example, we can not reach server and all our assertions are failed they will have red indicator.

SOAP UI failed assertions

Сервис-имитация

File → Create Empty Project
SOAP UI Create Empty Project
Введите имя проекта
SOAP UI Enter Project Name
New Rest Mock Service
SOAP UI New Rest Mock Service
Укажите имя MockService
SOAP UI Specify name of MockService
Add new mock action
SOAP UI Add new mock action
Введите путь и выберите метод GET
SOAP UI Enter Resource path
New MockResponse
SOAP UI New MockResponse
Введите имя нового ответа
SOAP UI Enter name of new MockResponse

Скопируйте json и вставьте в тело ответа

{
    "bicycles":{
          "bicycle": [{
          "id":1,
          "name": " Helkama ",
          "country": " Finland "
    }, {
          "id":2,
          "name": " Stels ",
          "country": "Russia"
    },{
          "id":3,
          "name": " Tunturi ",
          "country": " Finland "
       }]
    }
}

Замените Content | Media type на application/json. Http Status Code должен быть 200 – OK. Headers введите по желаюнию. Их можно добавить нажав на зелёный плюс +

SOAP UI Copy the json below and paste it to the Response body

Правой кнопкой мыши кликните на BicycleService и

Add new mock action

Назовите его «bicycle/1»

Правой кнопкой мыши кликните на «bicycle/1» (или кликните Ctrl + N) и

create New MockResponse

назовите его «singleBicycle»

Скопируйте json и вставьте в тело ответа

{
          "bicycle": {
          "id":1,
          "name": "Helkama ",
          "country": "Finland "
       }
}
SOAP UI new mock response

Создайте новый mock action, имя оставьте старое «/bicycle» а тип измените на POST вместо GET.

Создайте новый MockResponse и назовите его «addBicycle»

Скопируйте json и вставьте в тело ответа

{ "key":12041961 }
SOAP UI
Создайте новый mock action типа GET и назовите его «/incorrectep» а новый MockResponse «400» Измените Http Status Code на 400 – Bad Request
SOAP UI Http Status Code 400 - Bad Request

Обратите внимание, что сервис BicycleService использует порт 8080

SOAP UI Http Status Code 400 - Bad Request

Запустите BicycleService нажав на зелёный треугольник

SOAP UI start REST Mock service
У нас есть четыре сценария

Используем Postman чтобы протестировать их
POST на http://localhost:8080/bicycle

Должен вернуть key 12041961

SOAP UI
GET на http://localhost:8080/bicycle

Должен вернуть список велосипедов

SOAP UI
GET на http://localhost:8080/bicycle/1

Должен вернуть первый велосипед

SOAP UI
GET на http://localhost:8080/incorrectep

Должен вернуть пустой ответ и Http Status 400 Bad Request

SOAP UI

Dynamic Response

Чтобы заменить статичный ответ 12041961 на динамический в запросе POST на /bicycle заменим 12041996 на ${variable} и в script добавим следующий код:

context.setProperty("variable",Math.random()*100000000000000000)
SOAP UI script

Чтобы протестировать отправим несколько запросов из Postman и проверим изменяется ли ответ

Postman request

Нужен ли SOAP UI?

Ответ на этот вопрос зависит от уровня Вашей подготовки, предпочтений и, в каком-то смысле, идеологии.

Начинающему тестировщику SOAP UI пригодится хотя бы потому, что хранить и создавать запросы в нём прощё и быстрее чем другими способами.

Тестировщик с опытом программирования, например, на Python может написать все необходимые скрипты самостоятельно.

Идеологическим приверженцам работы из консоли или только из Linux тоже может показаться что в SOAP UI слишком много UI.

Clumsy 0.2 Soap UI
Тестирование с помощью Python 🖄Postman
Nmap Webservices
Тестирование API Testlink
Pivotal Tracker
Контакты и сотрудничество:
Пишите на www.andreyolegovich.ru cобака yandex.ru если Вы:
1. Хотите написать статью для моего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь со мной по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: