必须使用global环境模拟全局变量实现跨请求共享,通过创建激活global环境、引用变量、响应提取、JavaScript脚本赋值及导出导入JSON五种方式完成动态值复用。

如果您在Insomnia中需要在多个请求之间复用认证令牌、基础URL或其他动态值,则必须依赖全局变量或环境变量机制实现跨请求共享。以下是实现该目标的多种配置方法:
一、创建并激活全局作用域环境
Insomnia本身不提供独立的“全局变量”类型,但可通过创建一个名为global的专用环境,并始终将其设为当前激活环境,来模拟全局变量行为。该环境中的变量可在所有请求中无条件引用,无需切换上下文。
1、点击顶部导航栏右侧的环境图标(小星球图标)或使用快捷键 Ctrl+E(Windows/Linux)或 Cmd+E(macOS) 打开环境管理面板。
2、点击“创建环境”按钮,输入名称 global。
3、在变量表格中添加键值对,例如:
键:api_base_url,值:https://api.example.com
键:default_timeout,值:5000
4、在环境列表中点击 global 环境右侧的“设为当前”按钮,确保其状态显示为“已激活”。
二、在请求中引用全局环境变量
一旦global环境被激活,所有新建或编辑的请求均可直接通过双花括号语法访问其中定义的变量。该引用在URL、Headers、Body、Query Params等任意字段均生效,且解析发生在请求发送前。
1、新建一个GET请求,在URL栏输入:{{api_base_url}}/v1/users。
2、在Headers区域添加一行:
Key:X-Request-Timeout,Value:{{default_timeout}}。
3、发送请求,Insomnia将自动将{{api_base_url}}替换为https://api.example.com,并将{{default_timeout}}替换为5000。
三、通过响应提取自动更新全局环境变量
当某请求返回需复用于后续请求的动态值(如JWT令牌),可利用Insomnia的“响应提取”功能,将响应体中的字段值写入global环境的对应变量,实现跨请求自动同步。
1、选中已发出登录请求(例如POST /auth/login),切换至其 Response 标签页。
2、向下滚动至“Response Extraction”区域,点击 + Add Extraction。
3、在“Source”中选择 JSON;在“Expression”中输入 $.data.token(根据实际响应结构调整路径)。
4、在“Target Environment Variable”中选择 global 环境,并设置变量名 auth_token。
5、勾选 Run on every request,点击保存。
四、使用JavaScript脚本在Tests标签页中手动赋值
对于复杂逻辑(如拼接字符串、条件判断、Base64解码等),可借助Tests标签页中的JavaScript代码,调用insomnia.environment.set() API向global环境写入变量,精度与灵活性高于响应提取。
1、在目标请求(如登录成功后的响应)中,切换到 Tests 标签页。
2、输入以下脚本:
const response = JSON.parse(responseBody);
insomnia.environment.set('auth_token', response.data.token);
insomnia.environment.set('user_role', response.data.permissions[0]);
3、确保该请求执行后,global环境中的auth_token与user_role即被更新。
五、跨工作区复用同一全局环境配置
Insomnia支持将环境导出为JSON文件,便于在不同工作区、不同团队成员间统一部署全局变量配置,避免手动重建导致的不一致。
1、在环境管理面板中,找到已配置好的 global 环境,点击右侧三个点菜单。
2、选择 Export Environment,保存为 global.json 文件。
3、在另一工作区中,打开环境管理面板,点击 Import Environment,选择该JSON文件完成导入。
4、导入后,点击新环境右侧的“设为当前”,即可立即启用完全一致的全局变量集。

















