如何从同一个json节点提取多个(随机)值

如何从同一个json节点提取多个(随机)值,json,jmeter,jmeter-5.0,post-processor,Json,Jmeter,Jmeter 5.0,Post Processor,我试图从一个JSON响应中捕获多个值,但似乎无法从同一个随机节点获取它们 我曾尝试使用“;”将多个变量放在同一个提取器中,这是可行的,但它会随机通过节点,而不会从同一个提取器中提取所需的值 来源可能类似于 [ { “残疾”:假, “组”:空, “选定”:false, “文本”:“文本1”, “值”:“值1” }, { “残疾”:假, “组”:空, “选定”:false, “文本”:“文本2”, “值”:“值2” } ] 作为返回上述JSON的请求的子级添加 将以下代码放入“脚本”区域: 就

我试图从一个JSON响应中捕获多个值,但似乎无法从同一个随机节点获取它们

我曾尝试使用“;”将多个变量放在同一个提取器中,这是可行的,但它会随机通过节点,而不会从同一个提取器中提取所需的值

来源可能类似于

[
{
“残疾”:假,
“组”:空,
“选定”:false,
“文本”:“文本1”,
“值”:“值1”
},
{
“残疾”:假,
“组”:空,
“选定”:false,
“文本”:“文本2”,
“值”:“值2”
}
]
  • 作为返回上述JSON的请求的子级添加
  • 将以下代码放入“脚本”区域:

  • 就是这样,您应该能够在需要时将文本/值对引用为
    ${strBrandID}
    ${strBrandName}

  • 更多信息:


    像一个魔咒一样工作,希望使用内置提取器,但它的功能似乎有限。接下来的问题是,有没有简单的方法来添加一个默认值,或者我应该在它周围写一个if子句来检查randomEntry.value是否包含任何内容?if子句应该可以正常工作。或者,如果JSR223后处理器无法从响应中提取数据,您可以通过配置元素使用合理的默认值定义这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)