jmeter json断言_Jmeter之Response/JSON Assertion使用

我之前用Jmeter做压测的时候,曾经尝试过不用断言的功能,那么一般在什么情况下,Jmeter会报错误呢?我观察了一下,目前我碰到了这2种情况:

(1).返回的http code是:5**和4**

(2).返回的Error Msg是:Connection Timeout Or Reset

返回这两种错误,Summary Report的Error%这栏数值,就会不断的增加。但是,如果接口的返回是这样的信息:

{"errcode":"10600","errmsg":"******服务器异常","success":true}

Jmeter View Result Tree中,这条接口的运行结果是通过的。经过实践,为了得到更准确Error值,我们需要用到断言,这样才能更好了解每个接口的真实压测情况。

一. 首先用到的断言,Response Assertion

我们接口的返回,大概都是这样的格式:

{"errcode":"0","retval":{"code":200,"status":"success","message":"","data":""},"success":true}

使用的方式:

6a3e0c750c203edf65f1fb36acec5790.png

1.Apply to: 接口返回,只有一份报文,不存在多份的情况,所以使用:Main sample only就好了

2.Field to Test:验证返回报文的哪个部分,一般使用Text Response比较靠谱些

3.Pattern Matching Rules:验证返回报文的方式是什么,一般使用Contains,如果用Matches或者Equals,可能会对系统资源有一部分的消耗,特别是返回报文很长、很大的时候

4.Pattern to Test:验证断言的内容,填上对应的期望结果

我个人觉得,Text Response + Contains的方式,应该能满足我80%的断言需求了

官方文档:

https://jmeter.apache.org/usermanual/component_reference.html#Response_Assertion​jmeter.apache.org

二. 其次用到的断言,JSON Assertion

由于目前很多接口的请求和响应报文都是从XML转到JSON格式,那么相应我们的断言方式,除了大众版的-Response Assertion,理当还有JSON Assertion,那么,我们就来一起说说这个断言的使用。

对于Response Assertion中的响应报文,变成JSON Assertion,如下两图:

471106f1fdbccbe87d5f09f30987ca14.png

8ced7b6bce00bb3e2df1cc26f2cc57f3.png

通过这样的配置,就完成了从Response Assertion转成JSON Assertion的方式了。

Json格式的报文,最重要的就是访问元素地址

1.Assert JSON Path exists:$.errcode 和 $.success

2.Expected Value:填上期望值,0 和 true

3.Additionally assert value:当需要期望结果等于特定值的时候,选上;我在测试过程中,用上面的例子,勾不勾选,都可以验证成功

我个人觉得,Response Assertion已经能够很好的满足我的要求,同样的验证条件,Response Assertion只需要建立一次,验证多个点

JSON Assertion需要建立多个,每次只能验证一个点

c8dc9d3623228b2e992688f6d47a679c.png

官方文档:

https://jmeter.apache.org/usermanual/component_reference.html#JSON_Assertion​jmeter.apache.org
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值