Postman 中传数值0需确保类型为number而非字符串:JSON Body中写0不加引号,Query Params直接输入0,环境变量用pm.environment.set("key", 0)显式赋值,断言用eql(0)或双重校验类型与值。

Postman 里传数值为 0 的参数,不是“填不进去”,而是常被误判为“空”或“未设置”,尤其在 JSON Body、Query Params 或环境变量中。根本问题不在 Postman 本身,而在你用的格式和数据类型是否被正确识别。
JSON Body 中传 0 要写成数字,不能加引号
Postman 解析 JSON 时严格区分 0 和 "0":前者是 number 类型,后者是 string 类型。很多接口(尤其是后端用 Go/Java/Python 强类型解析的)会把 "0" 当字符串处理,导致校验失败或默认值覆盖。
- ✅ 正确写法:
{"status": 0, "count": 0}—— 注意没有引号 - ❌ 错误写法:
{"status": "0", "count": "0"}—— 后端收到的是字符串,可能被转成0也可能被当非法值拒绝 - ⚠️ 常见坑:从 Excel 或 CSV 导入数据时,
0会被自动转成字符串;用 JSON 参数化文件时,务必检查字段类型是否保留为 number
Query Params 或 URL 中传 0 没问题,但要注意编码和空格
URL 查询参数本质是键值对字符串,0 作为值天然合法,比如 ?page=0&size=10。真正出问题的往往是人为操作失误:
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
- ✅ 直接在 Params 栏输入
page/0即可,Postman 会自动 URL 编码(0不需要编码,所以结果就是原样) - ❌ 手动拼 URL 时多加了空格,如
?page= 0,会导致实际发出去的是?page=%200,后端收不到纯0 - ⚠️ 如果参数名本身带下划线或特殊字符(如
is_active),确保没和 Postman 内置变量(如{{is_active}})冲突 —— 若该变量未定义,Postman 会留空,最终变成?is_active=,而不是?is_active=0
用环境变量或全局变量存 0,必须用 pm.environment.set() 显式赋值
Postman 的变量系统默认把空字符串、null、undefined 都当“未设置”,而 0 是 falsy 值,容易被脚本逻辑误判。
- ✅ 正确做法:在 Pre-request Script 中写
pm.environment.set("offset", 0)—— 注意第二个参数是数字0,不是字符串 - ❌ 错误写法:
pm.environment.set("offset", "0")或pm.environment.set("offset", +reqOffset || 0)(如果reqOffset是空字符串,+""得到0,但语义模糊易错) - ⚠️ 在请求中引用时,
{{offset}}能正确展开为0,但如果你在 Tests 脚本里用pm.environment.get("offset") === 0判断,要确认它确实是 number 类型,可用typeof pm.environment.get("offset") === "number"校验
断言里验证返回值为 0,别用模糊相等
接口返回 {"code": 0} 很常见,但断言写成 response.code == 0 可能通过,却掩盖类型问题 —— 比如后端其实返回了 "0" 字符串,而 == 会做隐式转换。
- ✅ 推荐断言:
pm.expect(jsonData.code).to.eql(0)(Chai 的eql严格比对值和类型) - ✅ 或更明确:
pm.expect(typeof jsonData.code).to.equal("number")+pm.expect(jsonData.code).to.equal(0) - ⚠️ 尤其注意:如果响应是
text/plain类型,整个 body 是字符串,JSON.parse()失败会导致jsonData为 undefined,直接访问.code报错 —— 先加pm.response.to.have.status(200)和pm.expect(pm.response.text()).to.include("code")更稳妥
真正麻烦的不是怎么输 0,而是整个链路里——从参数化文件、环境变量设置、Pre-request 脚本、Body 构造,到后端接收和响应解析——任意一环把 0 当字符串或忽略掉,都可能让测试“看起来通过”实则失效。盯住类型,比盯住数值更重要。

















