当前位置: 首页 > 测试知识 > JMeter JSON断言用于验证JSON响应
JMeter JSON断言用于验证JSON响应
2026-05-29 作者cwb 浏览次数118

JMeter JSON 断言用于验证 JSON 响应。它通过 JSONPath 提取内容,并检查路径是否存在、值是否符合预期,非常适合测试 RESTful API。


如何添加

在需要检查的 HTTP 请求上右键:

添加 → 断言 → JSON 断言


JMeter 3.0 起内置该断言,无需安装插件。JMeter 5.2 以上还有一个 JSON JMESPath Assertion(基于 JMESPath 语法),用法类似。


配置字段说明(无表格,逐条说明)

JSON Path:填写 JSONPath 表达式,定位你要检查的字段,-例-如 $.data.id


Additionally assert value:勾选后,不仅要求路径存在,还要校验它的具体值


Match as regular expression:当勾选了值校验,可将期望值当作正则表达式来匹配


Expected Value:期望的值(仅在勾选“Additionally assert value”时生效)


Expect null:勾选后,期望 JSONPath 取到的值为 null,此时“Expected Value”会被忽略


Invert assertion:-反-转结果,即如果路径匹配成功,断言反而失败


JSONPath 常用写法(不用表格,纯列表)

$ – 根对象


$.name 或 $['name'] – 取根对象的 name 字段值


$.store.book[0].title – 取第一本书的标题


$.store.book[*].title – 取所有书的标题(返回数组)


$.store.book[?(@.price < 10)] – 过滤出价格小于 10 的书(返回对象数组)


$.store.book.length() – 获取 book 数组的长度(数值)

常见用例举例

1. 仅检查路径存在(不关心值)


JSON Path:$.data.user.id


不勾选 “Additionally assert value”


只要路径存在且值不为 null 即通过


2. 断言值等于特定内容


JSON Path:$.code


勾选 “Additionally assert value”


Expected Value:200


注意:如果响应是 "code": "200"(字符串),期望值要写 "200"


3. 正则匹配


JSON Path:$.message


勾选 “Additionally assert value” 和 “Match as regular expression”


Expected Value:成功|ok (匹配包含“成功”或“ok”)


4. 检查数组长度


JSON Path:$.data.items.length()


勾选 “Additionally assert value”


Expected Value:3 (期望 items 数组长度为 3)


5. 断言值为 null


JSON Path:$.error


勾选 “Expect null”


当 error 字段为 null 或路径不存在时通过


6. 反-向断言(确保某字段不出现)


JSON Path:$.errors


勾选 “Invert assertion”


如果 errors 路径存在且不为 null,则断言失败


调试提示

在察看结果树中,左下角切换到 “JSON Path Tester” 可以实时测试你的 JSONPath 表达式。若需要验证多个字段,直接添加多个 JSON 断言即可,全部通过才算成功。


文章标签: 软件测试 测试工具
咨询软件测试