JSON Path PostProcessor:存储JSON数组和对象丢失其数据类型

时间:2017-06-16 04:13:53

标签: json jmeter jsonpath

我使用带路径表达式的JSON Path PostProcessor来存储来自JSON响应的JSON对象,但是当我稍后检索变量时,它已被缩减为带有键对值的字符串。所以我不知道那是一个字符串或数字。

实施例: 响应看起来像这样

{
.
.
"currency" : {
                "code" : "AUD",
                "name" : "Australian Dollars",
                "symbol" : "$"
            },
.
}

使用路径表达式,我找到currency并保存。 但是,当我在HTTP请求正文数据("currency" : ${currency},)中使用它时, 它是这样的:

"currency" : {code=AUD, name=Australian Dollars, symbol=$},

如何让JSON Path PostProcessor保存JSON对象'按原样#34;不丢失数据类型细节?我应该使用不同的方法而不是JSON Path吗?

1 个答案:

答案 0 :(得分:0)

我建议您切换到docsJSR223 PostProcessor语言,这样您就可以完全控制正在发生的事情并能够做您想做的事情。

假设您有以下JSON响应:

{
  "currency": {
    "code": "AUD",
    "name": "Australian Dollars",
    "symbol": "$"
  }
}

相关的Groovy coode将类似于:

def json = new groovy.json.JsonSlurper().parse(prev.getResponseData())
def currency = json.currency
def currencyString = new groovy.json.JsonBuilder(currency).toPrettyString()
vars.put('currency', currencyString)
log.info(currencyString)

演示:

Groovy

参考文献: