Postman怎么给集合添加预请求脚本_Postman公共前置脚本配置教程

酷敏大大_4124

酷敏大大_4124

2026-11-06

891人浏览

原创

集合级Pre-request Script在每个请求前执行一次,用于统一注入Header、生成时间戳等;需避免在其中直接使用未完成的异步token获取逻辑,推荐用文件夹隔离或手动预存token。

postman怎么给集合添加预请求脚本_postman公共前置脚本配置教程

集合级 Pre-request Script 怎么加

直接在集合上配置预请求脚本,是解决「所有请求共用逻辑」最干净的方式。比如统一注入 Authorization 头、生成时间戳、刷新 token,都不用每个请求重复写。

操作路径很明确:在侧边栏右键目标集合 → 点击 “Edit” → 切到 Pre-request Script 标签页 → 粘贴 JavaScript 代码 → 点 Save。

注意:这个脚本会在集合里**每个请求发送前执行一次**,不是只运行一次。如果集合有 10 个请求,它就执行 10 次。

  • 脚本里不能访问 pm.response(因为响应还没回来)
  • 可以用 pm.variables.set() 设置变量,后续请求通过 {{variable_name}} 引用
  • 若需调用登录接口获取 token,必须用 pm.sendRequest(),且需配合回调处理,不能用 await(Postman 的 JS 运行环境不支持顶层 await)

为什么 pm.sendRequest 在集合预请求里常失败

很多人照着示例写 pm.sendRequest() 获取 token,结果控制台报 err is not null 或变量没设上——根本原因是没处理异步时序。

集合级预请求脚本本身是同步执行的,但 pm.sendRequest() 是异步的。如果你写了:

pm.sendRequest(loginReq, (err, res) => { pm.variables.set('token', res.json().token) });
pm.request.headers.add({key: 'Authorization', value: 'Bearer {{token}}'}); // 这行立刻执行,{{token}} 还没被设上!

结果就是 header 里塞了个字面量 Bearer {{token}},而不是真实值。

正确做法只有两种:

  • 把依赖 token 的请求放进一个**文件夹**,给该文件夹单独配预请求脚本(确保 token 已就绪后再发业务请求)
  • 或改用「先手动跑一次登录请求 → 把 token 存成环境变量 → 其他请求直接引用」,避开异步陷阱

时间戳、随机数这类简单动态值怎么安全生成

不需要调接口、不涉及异步,就纯本地计算,这是预请求脚本最稳的用法。

Postman Mac版
Postman Mac版

Postman Mac版是一款专为macOS设计的API开发与测试工具,凭借简洁的界面和强大的功能,深受开发者喜爱。它支持发送各种HTTP请求(GET、POST、PUT等),轻松管理接口集合、环境变量和模拟服务器。Mac用户可享受原生性能、快捷键优化及与系统无缝集成的体验,适用于接口调试、自动化测试和文档生成。无论是个人项目还是团队协作,Postman for Mac都能提升API开发效率,是ma

下载

常见错误是直接用 new Date().getTime() 赋值,但忘了格式化或时区问题。比如后端要求秒级时间戳,你给了毫秒级,就直接 400。

推荐写法:

// 秒级时间戳(常用)
pm.variables.set('ts', Math.floor(Date.now() / 1000));

// ISO 8601 格式(带时区,适合日志或调试)
pm.variables.set('iso_time', new Date().toISOString());

// 8 位随机数(字符串,避免前置零被转成数字)
pm.variables.set('nonce', Math.random().toString(36).substr(2, 8));

然后在请求 URL、Header 或 Body 里直接写 {{ts}}、{{nonce}} 即可。这些值每次请求都会刷新,无需额外控制。

脚本执行顺序和变量作用域容易混淆的点

Postman 的变量查找顺序是:request-level → folder-level → collection-level → environment → globals。但脚本执行顺序是另一回事。

关键事实:

  • 集合级预请求脚本,在**每个请求开始前**都执行(不是只执行一次)
  • 如果集合里有文件夹,且文件夹也配了预请求脚本,那执行顺序是:collection pre-request → folder pre-request → request pre-request
  • pm.variables.set() 在任意层级脚本里设的变量,对当前请求及之后的请求都可见;但 pm.environment.set() 设的是环境变量,会持久化到当前选中的环境里

最容易忽略的是:你在集合脚本里用 pm.variables.set('x', 'a'),又在某个请求的脚本里用 pm.variables.set('x', 'b'),那么这个请求看到的 x 是 b,但下一个请求又会回到 a(因为集合脚本重设了一次)。变量不是“覆盖”,而是“每次重置”。

相关专题

更多
软件测试常用工具
软件测试常用工具

软件测试常用工具有Selenium、JUnit、Appium、JMeter、LoadRunner、Postman、TestNG、LoadUI、SoapUI、Cucumber和Robot Framework等等。测试人员可以根据具体的测试需求和技术栈选择适合的工具,提高测试效率和准确性 。

2023.10.13

5070

8

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

XORM框架零基础入门教程
XORM框架零基础入门教程

本专题梳理XORM框架的入门路径,从框架定位、依赖安装、连接数据库到跑通第一个增删改查示例,讲清Engine初始化、日志开启与项目目录规划,并对比GORM等同类ORM的差异,帮助Go开发者建立整体认知。

2026.11.04

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Postman Native Git工作流指南
Postman Native Git工作流指南

共0课时 | 0人学习

Postman Vault密钥管理指南
Postman Vault密钥管理指南

共0课时 | 0人学习

Postman集合运行器使用指南
Postman集合运行器使用指南

共0课时 | 0人学习