在 JSON 中随机获取子值

Obtaining the child values randomly in JSON

我有一个如下所示的 JSON:我需要提取 Options -> Child as a Random 以及选项中的 Values as randomly。我们如何在jmeter中实现?

{
"id":37,
"merchant_id":"39",
"title":"Parker Pens",
"subtitle":null,
"price":1000,
"description":null,
"images":[  ],
"image_thumbs":[  ],
"options":[  
 {  
     "code":"color",
     "label":"Color",
     "extra_info":"",
     "values":[  
        {  },
        {  },
        {  }
     ]
  },
  {  
     "code":"size",
     "label":"Size",
     "extra_info":"",
     "values":[  
        {  },
        {  },
        {  }
     ]
  }
],"options_available":[  
  {  },
  {  },
  {  },
  {  },
  {  },
  {  },
  {  },
  {  },
  {  }
], "custom_options":[  

 ]
 }

我必须随机获取选项的子项。因为我必须获取 "Code" 的值及其在 "Value" 中的关联值。 帮助表示赞赏和有用

您的要求有点含糊,因为您没有指明所需的输出格式。解决方案之一是使用 JSR223 PostProcessor 从随机 options 数组中获取随机值,例如:

import com.jayway.jsonpath.JsonPath
import org.apache.commons.lang3.RandomUtils
import org.apache.jmeter.samplers.SampleResult

def options = JsonPath.read(prev.getResponseDataAsString(), '$.options')
def randomOption = options.get(RandomUtils.nextInt(0, options.size()))
def values = randomOption.get('values')
def randomValue = values.get(RandomUtils.nextInt(0, values.size())) as String
vars.put('randomValue', randomValue)

参考文献: