Soapui - утверждение, если значение передачи свойства находится в возвращаемом списке

Это мой первый пост, так что будьте нежны :)

В бесплатной версии SoapUI я хотел бы протестировать некоторые REST API по следующему простому сценарию: POST, чем GET для проверки сообщения. В моем наборе тестов есть тестовый пример, который состоит из следующих шагов: 1. пост; 2. передача собственности; 3. получить.

Дело в том, что ответ POST не содержит пар параметр-значение. Он возвращает json только со значением, которое на самом деле является идентификатором (соответствует параметру taskId).

На этапе передачи свойств я выбрал POST как Source, Response как Property и XPath как Path language (использование jsonPath возвращает null). В Target я выбрал Test Suite с propertyTest в качестве Property и XPath в качестве языка Path (здесь я получаю значение, если использую JSONPath). Когда я запускаю передачу собственности, она правильно возвращает переданное значение.

Наконец, на моем последнем шаге - ПОЛУЧИТЬ: GET возвращает список только в том случае, если установлен фильтр, поэтому я указал соответствующий параметр и значение в методе GET при его создании (фильтр от organizationId). Этот метод возвращает json, в котором есть все taskId (названные «id» в этом списке) для соответствующего organizationId (названного ownerOrganizatioId в этом списке). На этапе тестирования я хочу сделать утверждение, что ответ нового значения от POST действительно находится в полученном списке. Я пытаюсь сделать это с помощью утверждения JsonPath Match.

Если я использую это выражение: $.[?(@.ownerOrganizationId==2)].id, оно фактически вернет все идентификаторы (taskId) из базы данных. Все идет нормально. Но теперь я хотел бы заявить, что новое значение id действительно присутствует в этом списке. Я знаю, что могу использовать это выражение {#TestSuite1#TaskTypeIdPropertyTransfer}, чтобы использовать опубликованное значение, но я не знаю, что такое выражение assert, чтобы проверить, есть ли оно в списке?

Спасибо, что нашли время, чтобы прочитать и изучить это, и сообщите мне, если потребуется дополнительная информация.

С уважением, Павел

0
0
252
1

Ответы 1

Если я правильно понял, вам может понадобиться сделать какой-нибудь скрипт Groovy примерно так:

def id = {insert something to assign the id you need to find in the list}
def idList = {insert something to fetch the list}
def idFound = false
for (def currentId : idList) {
    if (id.equals(currentId)) {
        idFound = true
        break
    }
}
assert(idFound==true)

Другие вопросы по теме