Jmeter测试及应⽤--Jmeter处理Json类型返回数据的多种⽅法当⼀个请求的返回数据是json格式的时候,jmeter提供了三种⽅式去处理:
1. Json Assertion:直接对放回的结果做断⾔,判断数据是否和期望的值⼀致。
2. JSON Extractor:后置处理器,可以获取返回结果中的数据,然后保存到变量中,作为后⾯请求的参数使⽤。
3. 代码解析,如BeanShell:后置处理器,可以通过脚本处理,获取或判断返回结果中的数据。
下⾯来分别介绍下这三种⽅法的使⽤:
1. Json Assertion
json值的类型有哪些Assert Json Path exists:这⾥⽤来指定要获取json数据中那个key的值,如下:
情景⼀:
{"code": 200, "status": "successfull"}
想要获取code的值–$.code,其中$就代表整个返回数据,然后取其中key=code的数据的值。
情景⼆:获取json中数组元素中的数据
{"code": 200, "status": "successfull", "result": [{"msg": "access"}]}
想要获取上⾯msg中的数据该怎么办?取值⽅式–$.result[0].msg
Additionally assert value: 勾选后,会⽤前⾯取到的值直接和Expected Value中的数据进⾏全值⽐对。
Match as regular expression:勾选后,Expected Value中需要填写正则表达式,jmeter会根据你提供的正则表达式和获取到的数据进⾏⽐对。
Expect null:期望获取到的数据是null。
Invert assertion:注释写的很清楚–will fail if above conditions met,就是如果勾选,获取到的值如果和期望的匹配,那么返回false;不匹配,返回true。
2. JSON Extractor
假设返回报⽂如下:
{
"code":0,
"result":[
{
"orderNo":"NO20901928392"
}
]
}
那么想要获取其中的orderNo,jsonPath的写法就是$.result[0].orderNo,然后在vars(jmeter启动时加载的全局变量Map)中添加orderNo⽤来保存取到的值。
3. 使⽤BeanShell来处理返回值
这种⽅式就更加强⼤,完全可以⾃⼰⾃定义脚本逻辑来处理,实际上可以适⽤所有结果返回的处理及校验。具体内容请看请看另外两篇博⽂:
链接⼀:。
连接⼆:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论