Hoppscotch通过五种变量机制实现动态请求:一、预请求脚本生成临时变量;二、测试脚本提取响应数据存为变量;三、支持10层嵌套变量构建配置层级;四、密钥变量安全存储敏感信息;五、三级作用域(请求>集合>全局)变量覆盖协同。

如果您在Hoppscotch中构造请求时需要根据前序响应或运行时状态自动填充参数,则需依赖变量模板实现动态请求。以下是实现此目标的多种操作方法:
一、通过预请求脚本设置动态变量
预请求脚本在请求发送前执行,可用于生成时间戳、随机ID、签名参数等临时值,并将其存入环境变量供当前请求使用。该方式适用于需在请求体、URL或头中注入实时计算值的场景。
1、点击请求编辑区右上角的“Pre-request script”标签页。
2、输入JavaScript代码,例如:
pw.env.set("timestamp", new Date().getTime().toString());
pw.env.set("random_id", Math.floor(Math.random() * 1000000).toString());
3、在请求URL、Headers或Body中使用>和>语法引用变量。
4、发送请求,系统将自动替换为脚本生成的最新值。
二、通过测试脚本提取并保存响应数据为变量
测试脚本在响应返回后执行,可解析JSON响应体、提取令牌、ID或其他关键字段,并持久化为环境变量,供后续请求链调用。该方式是实现OAuth2.0流程、会话保持等链式调用的基础。
1、点击请求编辑区右上角的“Tests”标签页。
2、输入JavaScript代码,例如:
const res = pw.response.json();
if (res.access_token) {
pw.env.set("JWT", res.access_token);
}
3、确保目标响应为JSON格式且包含access_token字段。
4、在下一个请求的Authorization头中填入Bearer >,即可完成动态令牌注入。
三、嵌套变量与多层引用组合使用
Hoppscotch支持最多10层变量嵌套,允许一个变量的值引用另一个变量,从而构建灵活的配置层级。该方式适用于基础URL+路径+参数的分段管理,提升可维护性。
1、在环境变量中定义基础变量:
BASE_URL → https://api.example.com
API_VERSION → v1
ENDPOINT_USERS → users
2、定义组合变量:
USERS_ENDPOINT → >/>/>
3、在请求URL栏直接填写>。
4、切换环境时,所有嵌套层级将按顺序展开,最终生成完整URL。
四、使用密钥变量安全存储敏感参数
对于API密钥、密码、私有令牌等敏感信息,不应明文写入请求或普通变量。Hoppscotch提供密钥变量类型,其值在界面中显示为掩码,且不会被导出或日志记录,保障安全性。
1、进入左侧“Environments”面板,点击目标环境右侧的“Edit”按钮。
2、在变量列表中点击“Add Variable”。在值输入框右侧勾选Secret复选框。
3、输入变量名(如API_SECRET)及真实值(如sk_live_xxx)。
4、保存后,在请求中仍以>形式引用,但后台存储与传输全程加密处理。
五、跨环境变量作用域协同调用
Hoppscotch支持全局环境、集合环境与请求环境三级作用域,变量按优先级覆盖:请求环境 > 集合环境 > 全局环境。该机制允许在统一基础配置下,对特定集合或单个请求进行精细化覆盖。
1、在全局环境中定义通用变量:
TIMEOUT → 5000
CONTENT_TYPE → application/json
2、在某集合的环境配置中重定义:
CONTENT_TYPE → application/vnd.api+json
3、在该集合内某一请求的本地环境中再覆盖:
TIMEOUT → 10000
4、发送该请求时,CONTENT_TYPE取自集合环境,TIMEOUT取自请求环境,其余未覆盖变量继承全局环境。

















