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.JsonBuilder

import 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

回到顶部