JMeter JSON解析
当响应数据以多余的字符开头时,需要帮助解析JSON。
我可以使用JSON提取查询从示例中提取数据- $.results
**Working example:** {
"results" : [
{
"address_components" : [
{
"long_name" : "2300",
"short_name" : "2300",
"types" : [ "street_number" ]
},
{
"long_name" : "22201",
"short_name" : "22201",
"types" : [ "postal_code" ]
}
]
}
],
"status" : "OK"
}
但是,我找不到任何合适的方法来从以下JSON对象提取数据:
/**/_xdc_._9l6mlb && _xdc_._9l6mlb( { "results" : [
{
"address_components" : [
{
"long_name" : "2300",
"short_name" : "2300",
"types" : [ "street_number" ]
},
{
"long_name" : "22201",
"short_name" : "22201",
"types" : [ "postal_code" ]
}
]
}
],
"status" : "OK"
}
)
尝试使用通配符以–来转义JSON对象之前的前导字符,*$.results
但没有运气
任何帮助将非常感激
回答:
这/**/_xdc_._9l6mlb && _xdc_._9l6mlb(
一点使您的JSON有点无效。我建议使用JSR223
PostProcessor和Groovy语言代替:
import groovy.json.JsonBuilderimport groovy.json.JsonSlurper
def response = prev.getResponseDataAsString()
def cleanResponse = response.substring(response.indexOf("{"), response.lastIndexOf(")"))
def jsonSlurper = new JsonSlurper()
def json = jsonSlurper.parseText(cleanResponse)
def results = json.results
def builder = new JsonBuilder(results)
vars.put("results", builder.toPrettyString())
上面的代码将与JSON Path PostProcessor完全相同,并将值存储到${results}
JMeter变量中
参考文献:
- 解析并生成JSON
- Beanshell,JSR223和Java JMeter脚本:您一直在等待的性能下降!
以上是 JMeter JSON解析 的全部内容, 来源链接: utcz.com/qa/416148.html