在 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)
参考文献:
我有一个如下所示的 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)
参考文献: