需求
我们发送一个请求,结果返回json数据,我们需要根据json数据中code的值来判断此次请求是否成功。
接口案例:
@PostMapping(value = "/login")
public ResponseMessage<String> login(@RequestBody SeckillUserDTO seckillUserDTO){
return ResponseMessageBuilder.build(HttpCode.SUCCESS.getCode(), seckillUserService.login(seckillUserDTO.getUserName(), seckillUserDTO.getPassword()));
}
操作步骤
创建线程组
创建http请求
设置请求内容类型content-type
添加JSON断言
在添加JSON断言之前,先看看这个接口的响应数据格式:
现在,我们要根据响应结果中code的值来判断请求是否成功:
JSON断言成功/失败的情况
- 响应格式非JSON:失败
- 找不到code属性:失败
- 提取到code值,但是没有设置预期值:成功
- 提取值跟预期值不一致:失败
- 提取值跟预期值一致:成功
- 提取值是数组,跌断判断是否与预期值匹配:通过则成功,反之失败。
附:JSONPath语法表
JSONPath语法的一个例子:
{
"store": {
"book": [
{
"title": "入门到成功",
"price": 50.00
},
{
"title": "入门到入魂",
"price": 998.00
},
]
}
}
如何取第一本书的名称?$.store.book[0].title
XPath | JsonPath | 说明 |
---|---|---|
/ | $ | 文档根元素 |
. | @ | 当前元素 |
/ | .或[] | 匹配下级元素 |
… | N/A | 匹配上级元素,JsonPath不支持此操作符 |
// | … | 递归匹配所有子元素 |
* | * | 通配符,匹配下级元素 |
@ | N/A | 匹配属性,JsonPath不支持此操作符 |
[] | [] | 下标运算符,根据索引获取元素,XPath索引从1开始,JsonPath索引从0开始 |
` | ` | [,] |
N/A | [start🔚step] | 数据切片操作,XPath不支持 |
[] | ?() | 过滤表达式 |
N/A | () | 脚本表达式,使用底层脚本引擎,XPath不支持 |
() | N/A | 分组,JsonPath不支持 |