SoapUI - Утверждает, находится ли значение передачи свойства в возвращаемом списке - PullRequest
0 голосов
/ 31 октября 2018

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

В бесплатной версии SoapUI я хотел бы протестировать некоторые REST API по следующему простому сценарию: ПОСТ, чем ПОЛУЧИТЬ проверить пост. В моем наборе тестов у меня есть тестовый пример, который имеет следующие шаги: 1. пост; 2. передача имущества; 3. получить.

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

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

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

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

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

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

1 Ответ

0 голосов
/ 01 ноября 2018

Если я правильно понял, вам может понадобиться выполнить какой-нибудь скрипт 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)
...