我正在尝试从JSON响应中捕获多个值,但似乎无法从同一随机节点中获取它们。
我尝试使用“;”将多个变量放置在同一提取器中并且可以正常工作,但是它会随机遍历节点,并且不会从同一个节点中提取我需要的值
来源类似于
[
{
"Disabled": false,
"Group": null,
"Selected": false,
"Text": "Text1",
"Value": "Value1"
},
{
"Disabled": false,
"Group": null,
"Selected": false,
"Text": "Text2",
"Value": "Value2"
}
]
我想从2个节点(随机匹配)中的任何一个中获取Text和Value,它们可以使用我可以使用的数组或2个变量。
到目前为止,似乎从一个节点获取价值,而从另一个节点获取文本(在更长的资源中)
所以我想要的结果将是text1和value1或text2和value2,而不是两者的混合。
答案 0 :(得分:3)
将以下代码放入“脚本”区域:
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)
就是这样,您应该能够在需要时将文本/值对称为${strBrandID}
和${strBrandName}
更多信息: