Test Results标签页中“3/3”表示共定义3条断言且全部通过;“2/3”表示1条失败并标红显示详情;老写法tests["xxx"]=...不展错因,新写法pm.test推荐使用;“0/0”或pm is not defined说明运行环境异常,需改用官方桌面版。

断言是否通过,直接看右上角 Test Results 标签页里的绿色对勾或红色叉号,不是靠眼睛扫代码、也不是靠控制台日志。
Test Results 标签页显示“3/3”代表什么
发送请求后,Postman 自动执行 Tests 页签里的所有 pm.test() 调用。“3/3”表示共定义了 3 条断言,全部通过;“2/3”表示有 1 条失败,此时会标红并显示具体哪条失败、失败原因(比如 expected 400 to equal 200)。
注意:tests["xxx"] = xxx 这种老写法也会计入总数,但不会在 Test Results 里展开失败详情——只显示 pass/fail,不报错堆栈。
- 新写法(推荐):
pm.test("xxx", () => { pm.expect(...).to.eql(...) }),失败时带清晰错误定位 - 老写法:
tests["xxx"] = responseBody.includes("ok"),失败只标红,无上下文 - 混写会导致 Test Results 统计数不准(比如写了 2 条
pm.test+ 1 条tests[...],可能只显示 “2/2”)
断言失败但没报错?检查 pm 对象是否可用
如果 Test Results 显示 “0/0” 或空白,甚至控制台报 pm is not defined,说明脚本根本没执行。这不是断言逻辑问题,而是运行环境异常:
Postman Mac版是一款专为macOS设计的API开发与测试工具,凭借简洁的界面和强大的功能,深受开发者喜爱。它支持发送各种HTTP请求(GET、POST、PUT等),轻松管理接口集合、环境变量和模拟服务器。Mac用户可享受原生性能、快捷键优化及与系统无缝集成的体验,适用于接口调试、自动化测试和文档生成。无论是个人项目还是团队协作,Postman for Mac都能提升API开发效率,是ma
- 你正在用 Chrome 应用版 Postman(已废弃),
pm对象不可用 → 必须卸载,改用官网下载的独立桌面版(postman.com/downloads) - 脚本写在了 Pre-request Script 里,但断言必须写在
Tests标签页(不是Pre-request Script,也不是Collection Runner的全局脚本) - 用了
JSON.parse(responseBody)但响应不是合法 JSON → 报错中断后续断言执行,Test Results 可能只显示部分结果
为什么断言通过了,但实际数据不对
常见陷阱是“断言写对了,但取值错了”。比如接口返回 {"data": {"token": "abc"}},却写了:
var jsonData = pm.response.json();
pm.expect(jsonData.token).to.eql("abc"); // ❌ jsonData.token 是 undefined
正确写法是:
var jsonData = pm.response.json();
pm.expect(jsonData.data.token).to.eql("abc"); // ✅
- 嵌套字段必须逐级访问,别跳级;建议先在 Console 打印
console.log(pm.response.json())看结构 - 用
pm.response.text()取原始字符串做include断言时,注意空格、换行、编码(比如中文乱码导致include("成功")失败) -
pm.response.to.have.body("xxx")要求响应体**完全等于**该字符串,连末尾换行都不能多——99% 场景该用pm.expect(...).to.include("xxx")
真正容易被忽略的点:断言本身不报错,不代表逻辑可靠;Test Results 显示通过,只说明那行代码没抛异常、布尔值为 true,而取值路径错、字段名拼错、类型误判(比如把字符串当数字比),都会让断言“假通过”。每次加断言,先手动验证下 pm.response.json() 结构,再写取值逻辑。
















