接口测试的核心是验证响应是否符合预期。JMeter 提供了多种断言元件,可以校验状态码、响应文本、JSON 字段等。本文将系统讲解响应断言、JSON 断言、断言结果监听器,并通过登录接口实战,让你掌握如何让测试自动判断成功或失败。
一、断言的作用
在 JMeter 中,断言用于检查取样器的响应结果是否满足预期条件。如果断言失败,该取样器会被标记为失败,并记录在监听器中。没有断言,你的测试脚本只是"发送了请求",而不是"测试了接口"。
二、响应断言(Response Assertion)
这是最基础的断言,可以校验响应码、响应头、响应文本等。
2.1 添加位置
右键某个 HTTP 请求(或线程组) → Add → Assertions → Response Assertion
2.2 配置项详解

常用场景:
校验响应状态码:Field = Response Code,Rules = Equals,Pattern = 200
校验响应文本是否包含关键字:Field = Response Text,Rules = Contains,Pattern = success
校验响应头中的Content-Type:Field = Response Headers,Rules = Contains,Pattern = application/json
2.3 示例:校验登录接口返回的 token 存在
假设登录成功返回 JSON:{ "code":0, "token":"abc123" }
我们可以校验响应文本中包含 "token"。在 Patterns to Test 中填入 "token":,使用 Contains 匹配规则。
注意:Contains 是部分匹配,如果希望精确匹配整个响应,使用 Matches(需要写正则)。
三、JSON 断言(JSON Assertion)
对于 RESTful API(大量使用 JSON 格式),JSON 断言更加精准和方便。它可以基于 JSON Path 表达式验证具体字段值。
3.1 添加位置
右键 HTTP 请求 → Add → Assertions → JSON Assertion
3.2 配置项

3.3 常用 JSON Path 示例

3.4 实战示例
假设响应:
json
{
"status": "success",
"data": {
"userId": 1001,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
}
}
JSON 断言配置:
JSON Path:$.status
Expected Value:success
同时添加第二个断言:$.data.userId,期望值 1001
如果响应的 userId 不是 1001,断言失败。
四、其他有用断言(简介)

五、断言结果监听器
为了查看断言是否通过,需要添加断言结果监听器。
右键线程组 → Add → Listener → Assertion Results
运行后,该监听器会列出每个断言的通过/失败信息。失败时会显示期望值与实际值的差异。
六、实战:登录接口的多重断言
目标:测试登录接口 POST /api/login,请求 JSON 体,期望返回状态码 200 且 JSON 中包含 token 且 userRole 为 admin。
6.1 测试步骤
创建 HTTP 请求:
方法:POST
路径:/api/login
Body Data:
json
{"username":"admin","password":"123456"}
添加 HTTP Header Manager:Content-Type: application/json
添加响应断言:校验 Response Code = 200
添加 JSON 断言:
断言1:JSON Path = $.code,Expected Value = 0(假设业务码0成功)
断言2:JSON Path = $.data.token,Expected Value 可以为空(只检查存在)
断言3:JSON Path = $.data.userRole,Expected Value = admin
添加 Assertion Results 监听器
执行,查看所有断言是否通过。
如果接口返回格式有变化(例如 code=200 而非 0),调整期望值即可。
七、断言失败时的调试技巧
在查看结果树中选中失败的请求,查看 Response data 实际内容。
临时注释掉部分断言,分段排查。
在断言中输出实际值(部分断言支持自定义失败信息,但需要脚本扩展)。
八、常见错误与解决

九、总结
本文核心:
响应断言:校验状态码、响应文本、响应头
JSON 断言:基于 JSON Path 精准验证字段
断言结果监听器用于观察结果
多重断言组合使用,保证接口正确性