Jmeter测试及应用--Jmeter处理Json类型返回数据的多种方法

当一个请求的返回数据是json格式的时候,jmeter提供了三种方式去处理:

  1. Json Assertion:直接对放回的结果做断言,判断数据是否和期望的值一致。
  2. JSON Extractor:后置处理器,可以获取返回结果中的数据,然后保存到变量中,作为后面请求的参数使用。
  3. 代码解析,如BeanShell:后置处理器,可以通过脚本处理,获取或判断返回结果中的数据。

下面来分别介绍下这三种方法的使用:

  1. Json Assertion
    在这里插入图片描述
  • 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

  1. JSON Extractor
    在这里插入图片描述
    假设返回报文如下:

    {
        "code": 0,
        "result": [
            {
                "orderNo": "NO20901928392"
            }
        ]
    }
    

    那么想要获取其中的orderNo,jsonPath的写法就是$.result[0].orderNo,然后在vars(jmeter启动时加载的全局变量Map)中添加orderNo用来保存取到的值。

  2. 使用BeanShell来处理返回值
    这种方式就更加强大,完全可以自己自定义脚本逻辑来处理,实际上可以适用所有结果返回的处理及校验。具体内容请看请看另外两篇博文:
    链接一:Jmeter测试及应用–如何使用BeanShell断言判断请求返回的Json相应结果
    连接二:Jmeter测试及应用–BeanShell介绍和使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值