insomnia可通过三种方式实现请求前动态输入变量:一、pre-request script中用prompt()函数弹窗输入并设环境变量;二、通过编辑环境变量界面手动输入;三、安装prompt插件支持多字段及类型校验的增强弹窗。

如果您在使用 Insomnia 进行 API 测试时,希望在发送请求前动态输入变量值(例如 token、用户 ID 或时间戳),而非硬编码或依赖环境变量,则可通过 Prompt 弹窗实现交互式变量输入。以下是实现该功能的多种方法:
一、使用内置 prompt() 函数触发弹窗
Insomnia 支持在请求的 Pre-request Script 中调用 JavaScript 的 prompt() 函数,运行时将弹出原生输入框,用户输入后该值可赋给变量并用于请求体或参数中。
1、在 Insomnia 中选中目标请求,点击右上角“⋯”按钮,选择“Edit Request”。
2、切换到“Pre-request Script”标签页,输入以下代码:
const userInput = prompt("请输入订单ID:");
insomnia.setEnvironmentVariable("order_id", userInput);
3、在请求 URL 或 Body 中引用该变量,例如:{{order_id}}。
4、点击“Send”时,Insomnia 将先弹出输入框,等待用户填写并确认后,再执行后续请求。
二、通过环境变量 + 手动编辑触发交互
该方法不依赖脚本弹窗,而是利用 Insomnia 环境变量的编辑机制,在发送前手动激活变量编辑界面,实现类交互效果。适用于需频繁切换少量变量的场景。
1、进入“Environments”面板,创建或选中一个环境(如 “Development”)。
2、在该环境变量列表中添加一项,名称设为 user_token,值留空或填占位符(如 “INPUT_REQUIRED”)。
3、在请求中使用 {{user_token}} 占位符。
4、点击请求右上角“Send”旁的下拉箭头,选择“Edit Environment Variables before sending”,此时将弹出变量编辑弹窗,可直接修改 user_token 的值并确认发送。
三、结合插件实现增强型 Prompt 输入
Insomnia 插件市场中的 “Insomnia Plugin Prompt” 可提供更稳定的弹窗支持,避免原生 prompt() 在某些版本中被拦截或失效的问题,并支持多字段、类型校验等扩展能力。
1、打开 Insomnia,进入 “Preferences” → “Plugins” → “Browse Plugins”。
2、搜索关键词 prompt,安装名为 “Insomnia Plugin Prompt” 的插件。
3、重启 Insomnia 后,在 Pre-request Script 中改用插件提供的 API:
const result = await insomnia.prompt("请输入邮箱", { type: "email" });
insomnia.setEnvironmentVariable("target_email", result.value);
4、在请求中引用 {{target_email}} 即可完成注入。











