Jmeter之JSON断言

发布时间:2023年12月27日

需求

我们发送一个请求,结果返回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()));
}

操作步骤

创建线程组

image.png

创建http请求

image.png

设置请求内容类型content-type

image.png

添加JSON断言

在添加JSON断言之前,先看看这个接口的响应数据格式:
image.png
现在,我们要根据响应结果中code的值来判断请求是否成功:
image.png

JSON断言成功/失败的情况

  • 响应格式非JSON:失败
  • 找不到code属性:失败
  • 提取到code值,但是没有设置预期值:成功
  • 提取值跟预期值不一致:失败
  • 提取值跟预期值一致:成功
  • 提取值是数组,跌断判断是否与预期值匹配:通过则成功,反之失败。

附:JSONPath语法表

JSONPath语法的一个例子:

{
  "store": {
    "book": [
      {
        "title": "入门到成功",
        "price": 50.00
      },
      {
        "title": "入门到入魂",
        "price": 998.00
      },
    ]
  }
}

如何取第一本书的名称?$.store.book[0].title

XPathJsonPath说明
/$文档根元素
.@当前元素
/.或[]匹配下级元素
N/A匹配上级元素,JsonPath不支持此操作符
//递归匹配所有子元素
**通配符,匹配下级元素
@N/A匹配属性,JsonPath不支持此操作符
[][]下标运算符,根据索引获取元素,XPath索引从1开始,JsonPath索引从0开始
``[,]
N/A[start🔚step]数据切片操作,XPath不支持
[]?()过滤表达式
N/A()脚本表达式,使用底层脚本引擎,XPath不支持
()N/A分组,JsonPath不支持
文章来源:https://blog.csdn.net/qq_38974073/article/details/135227547
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。