Postman中拼接固定文字与变量需用JS字符串操作,因{{var}}仅在请求发送时替换;Tests中无法直接拼接,须先提取真实值再组合;Pre-request Script可动态设置Header或JSON Body;注意编码、空格及变量作用域问题。

Postman 关联参数前后加固定文字的写法
直接拼接字符串就行,不需要额外插件或复杂逻辑。Postman 的变量语法 {{variable_name}} 是纯文本替换,支持和任意固定字符混用。
为什么不能在 Tests 里直接写 {{token}} 拼接
因为 {{token}} 只在请求发送时才被替换,而 Tests 脚本运行在响应返回后,此时它还只是字面量字符串,不是真实值。想拼接固定前缀/后缀,必须在脚本里用 JS 字符串操作完成。
- 错误写法:
pm.globals.set("full_token", "Bearer {{token}}")→ 实际存入的是字面量"Bearer {{token}}",不是带值的字符串 - 正确写法:
pm.globals.set("full_token", "Bearer " + token_value),其中token_value是从响应中提取出的真实值 - 如果 token 来自 JSON 响应:
const token_value = pm.response.json().data.token; - 如果来自响应头:
const token_value = pm.response.headers.get("X-Auth-Token");
Pre-request Script 中组合参数并回填到 Header 或 Body
这是最常见也最容易出错的场景:比如需要把关联来的 user_id 和固定字符串拼成业务标识字段,再塞进请求头或 JSON body。
Postman Mac版是一款专为macOS设计的API开发与测试工具,凭借简洁的界面和强大的功能,深受开发者喜爱。它支持发送各种HTTP请求(GET、POST、PUT等),轻松管理接口集合、环境变量和模拟服务器。Mac用户可享受原生性能、快捷键优化及与系统无缝集成的体验,适用于接口调试、自动化测试和文档生成。无论是个人项目还是团队协作,Postman for Mac都能提升API开发效率,是ma
- Header 示例(加前缀):
pm.request.headers.upsert({key: "X-Trace-ID", value: "APP-" + pm.globals.get("user_id") + "-V2"}); - JSON Body 示例(加后缀):
const jsonData = JSON.parse(pm.request.body.raw); jsonData.order_no = pm.globals.get("order_prefix") + "-" + Date.now(); pm.request.body.raw = JSON.stringify(jsonData); - 注意:
pm.request.body.raw修改后,Postman 不会自动重算 Content-Length,但现代服务端基本不校验这个,可忽略 - 若 Body 是
form-data或x-www-form-urlencoded,不能直接改raw,得用pm.request.body.update()或改用 Pre-request 脚本动态添加字段
容易忽略的编码与空格问题
拼接后的字符串如果含中文、斜杠、冒号或空格,可能被 URL 编码或破坏结构,尤其用在 Query 或 Header 里时。
- Header 值含空格是合法的,但某些网关会截断,建议用下划线代替:
"USER_" + id而非"USER " + id - 拼进 URL Query 时,必须手动
encodeURIComponent():pm.globals.set("q", encodeURIComponent("prefix_" + val)) - 拼进 JSON 字符串时,JS 自动处理转义,不用额外处理;但若拼的是 base64 片段,确保原始值没换行符或多余空格
- 全局变量名本身不能含点号或连字符,否则
pm.globals.get("api.v1")会报错,要用下划线:api_v1
真正卡住人的往往不是怎么拼,而是拼完没检查作用域——Pre-request 里设的变量,Tests 里取不到;Globals 设了,Environment 里又覆盖了;拼出来的字符串看着对,一发请求就被网关 400 拦下,结果发现是 Header 多了个不可见的全角空格。









