Как извлечь несколько (случайных) значений из одного узла json - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь получить несколько значений из ответа JSON, который я получаю, но, кажется, не могу получить их от одного и того же случайного узла.

Я пытался поместить несколько переменных в один экстрактор, используя ";"и это работает, но проходит через узлы случайным образом и не извлекает нужные мне значения из одного и того же значения

enter image description here

Источник будет что-то вроде

[
	{
		"Disabled": false,
		"Group": null,
		"Selected": false,
		"Text": "Text1",
		"Value": "Value1"
	},
	{
		"Disabled": false,
		"Group": null,
		"Selected": false,
		"Text": "Text2",
		"Value": "Value2"
	}
]

и я хотел бы получить от любого из 2-х узлов (случайным образом совпадающих) как текст, так и значение либо в массиве, который я могу использовать, либо в 2 переменные.

Пока что кажется, что значение берется из одного узла, а текст из другого (в более длинных источниках)

, поэтому моим желаемым результатом будет либо text1 и value1, либо text2 и value2, но не сочетание обоих..

1 Ответ

0 голосов
/ 20 декабря 2018
  1. Добавить JSR223 PostProcessor как дочерний элемент запроса, который возвращает вышеуказанный JSON
  2. Поместить следующий код в область «Сценарий»:

    def json = new groovy.json.JsonSlurper().parse(prev.getResponseData())
    def randomEntry = json.get(org.apache.commons.lang3.RandomUtils.nextInt(0, json.size()))
    vars.put('strBrandID', randomEntry.Value)
    vars.put('strBrandName', randomEntry.Text)
    
  3. Вот и все, вы должны иметь возможность ссылаться на пары Текст / Значение как ${strBrandID} и ${strBrandName}, где требуется

Дополнительная информация:

...