性能测试全栈笔记:9.Jmeter接口JSON断言
性能测试全栈笔记
九、Jmeter接口JSON断言
JSON断言主要学习:判断具体值、正则、空值(null)判断、数组形式断言
举例:
- 协议:HTTP
- IP:192.168.25.152
- 端口:8080
接口名称 | 接口方式 | 路径 | 入参(参数) |
普通的GET类型接口 | get | /pinter/com/getSku?id=1 | id=1 |
参数为json的POST接口 | post | /pinter/com/register | {“userName”:”test”,”password”:”1234″,”gender”:1,”phoneNum”:”110″,”email”:”beihe@163.com”,”address”:”Beijing”} |
返回json数组的GET接口 | get | /pinter/com/userList | genderType=0 |
没有添加断言的情况下,运行一遍脚本:
响应文本:
{"code":"0","message":"success","data":{"skuId":1,"skuName":"ptest-1","price":"255","stock":772,"brand":"testfan"}}
使用JSON在线解析及格式化验证工具,查看下钻方式:
{
"code":"0",
"message":"success",
"data":{
"skuId":1,
"skuName":"ptest-1",
"price":"255",
"stock":772,
"brand":"testfan"
}
}
添加断言:
1.判断具体值
Additionally assert value:勾选,判断值功能生效
运行脚本,察看结果数正确:
2.使用正则判断
注意点:
$.data.brand:判断brand的值
Match as regular expression:勾选,正则生效
Expected Value:接受的值,填写正则形式,使用万能正则.+
察看结果数,正确:
3.判断null值
先运行一下单脚本接口(因为是JSON入参,记得添加HTTP信息头管理器:Content-Type: application/json;charset=UTF-8
):
察看结果数,看一下没有断言的结果:
添加断言,$data
Expect null:勾选,判断null值生效
注意:Expect null
下面那个是非空判断
4.数组形式断言
先运行一下单个脚本
假设,需对age进行断言,添加断言:
$.data[1].age:JSON断言路径,数组[1]代表第二个数值,因为数组是从[0]开始的,这里不唠这个
Expected Value:[0-9]+,[0-9]:0-9之间任意取值,+表示适配0或1次,取到就ok
察看结果数,正确:
JSON数组断言介绍完毕,下一节介绍BeanShell断言。