JMeter在发送并进一步确认之前获取并存储身体数据

时间:2019-02-27 17:57:49

标签: json jmeter

示例json:

{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {
                    "ID": "Test sample 1",
                    "SortAs": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Acronym": "SGML",
                    "Abbrev": "ISO 8879:1986",
                    "GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": ["GML", "XML"]
                    },
                    "GlossSee": "markup"
                }
            }
        }
    }
}

我正在尝试使用JSR223预处理器将整个json存储到一个变量中。

def body = new groovy.json.JsonSlurper().parseText(sampler.getArguments().getArgument(0).getValue())
vars.putObject('actual', body)
log.info("actual" + actual)

仅存储第一个参数数据。如何存储整个json。请帮助

2 个答案:

答案 0 :(得分:0)

Json对象是一个字符串,因此解码(解析)json会将其存储在字符串变量中,并在需要时进行解码。

答案 1 :(得分:0)

如果您想使用JSR223预处理器将响应存储到JMeter变量中,则甚至不需要通过任何方式解析它,只需删除请求有效负载即可:{p} 3:

vars.put('actual', sampler.getArguments().getArgument(0).getValue())

JsonSlurper

然后${actual} JMeter变量将保存HTTP请求有效负载,您可以使用enter image description here进行验证:

Debug Sampler and View Results Tree listener combination