SoapUI. Перенос случайного значения JSON из массива в следующий ответ

Stanislav Semyonov спросил: 28 апреля 2018 в 08:43 в: json

Мне нужно протестировать некоторую услугу REST через SOAPUI. Ответ запроса JSON выглядит примерно так.

    [
      {
      "id": 1,
      "name": "Name1",
   },
      {
      "id": 2,
      "name": "Name2",
      }
   },
      {
      "id": 3,
      "name": "Name3",
         }
         ]

Я могу передать конкретный id этого массив к пути ресурса следующего запроса / users / {id} с выражением Jsonpath через Property Transfer. Но как я могу выбрать случайный id из этого ответа и поместить его в следующий путь ресурса запроса?

1 ответ

Есть решение
Ross ответил: 28 апреля 2018 в 10:47

Вы можете использовать Groovy Script для случайного создания числа для вас на основе размера вашего массива, который, в свою очередь, может использоваться с /users/{id}

//generate a random number using the range of 0 to 3
def randomNumber = Math.abs(new Random().nextInt() % 4)
log.info randomNumber//Define json map
def map = [["id":123, "name":"Bob"],
             ["id":321, "name":"John"],
             ["id":333, "name":"Jim"],
             ["id":111, "name":"Sally"]]//Use random number to select value from list
def selector = map.id[randomNumber]
log.info selector

Чтобы преобразовать json в карту, вы можете использовать jsonslurper, который вы можете найти здесь.

Stanislav Semyonov ответил: 28 апреля 2018 в 09:58
У меня возникла идея, но что, если массив не состоит из возрастающих по возрастанию чисел, например [123, 45, 23]. Мне удалось сохранить все мои значения в одном массиве, но не знаю, как извлечь из него случайное значение.
Ross ответил: 28 апреля 2018 в 10:48
@StanislavSemyonov Я обновил свой ответ, надеюсь, что это поможет
Stanislav Semyonov ответил: 28 апреля 2018 в 02:38
очень благодарен, я думаю, что это именно то, что мне нужно.
Ross ответил: 30 апреля 2018 в 11:19
Вы очень желанны, если бы это ответили на ваш вопрос, можете ли вы принять его.