Insomnia支持动态变量生成实时参数:一、用{{timestamp}}或{{timestamp-seconds}}注入毫秒/秒级时间戳;二、通过Script脚本生成ISO等自定义格式时间并存为环境变量;三、用{{randomInt}}或{{randomString}}生成基础随机数/字符串;四、用JavaScript脚本定制随机范围、长度或字符集。

如果您在Insomnia中需要为请求注入实时变化的参数(如时间戳或随机数),以规避缓存、实现幂等性测试或模拟真实用户行为,则必须借助其动态变量生成功能。以下是实现此目标的具体操作路径:
一、使用内置时间戳变量
Insomnia原生支持一组预定义的动态变量,其中{{timestamp}}和{{timestamp-seconds}}可直接生成毫秒级与秒级时间戳,无需脚本干预,适用于快速注入当前系统时间。
1、在任意请求的URL、Header或Body中,输入双花括号包裹的变量名,例如:{{timestamp}} 或 {{timestamp-seconds}}。
2、发送请求后,Insomnia将在运行时自动将其替换为当前毫秒时间戳(如1746716227892)或秒级时间戳(如1746716227)。
3、若需自定义格式(如ISO 8601),则该方法不适用,需转向脚本方案。
二、通过JavaScript脚本生成定制化时间戳
利用Insomnia的“Script”标签页执行JavaScript代码,可调用Date对象生成任意格式的时间字符串,并将其写入环境变量,从而支持复杂格式需求(如YYYY-MM-DD HH:mm:ss)。
1、选中一个已配置的请求,在右侧标签栏切换至Script选项卡。
2、在脚本编辑区输入以下代码:
const now = new Date();
const formatted = now.toISOString().replace('T', ' ').substring(0, 19);
insomnia.setEnvironmentVariable('custom_timestamp', formatted);
3、保存脚本并确保该请求已关联目标环境(如“Development”)。
4、在其他请求中引用该变量:{{custom_timestamp}}。
三、使用内置随机数变量
Insomnia提供{{randomInt}}和{{randomString}}两个基础随机变量,分别用于生成随机整数与随机字母数字字符串,满足简单唯一性标识需求。
1、在请求任意字段中插入{{randomInt}},每次发送将生成一个0–999999之间的随机整数。
2、插入{{randomString}},每次发送将生成一个10位长度的随机小写字母字符串(如abxqzlmnop)。
3、若需控制位数或字符集,上述变量无法满足,须采用脚本方式。
四、通过脚本生成可控随机数或字符串
当需要指定范围、长度或字符集(如仅数字、大写字母、固定长度)时,必须使用JavaScript脚本动态生成并注入环境变量。
1、在目标请求的Script标签页中,粘贴以下生成6位纯数字随机码的脚本:
const random6Digit = Math.floor(100000 + Math.random() * 900000).toString();
insomnia.setEnvironmentVariable('otp_code', random6Digit);
2、若需生成12位含大小写字母与数字的随机字符串,使用以下脚本:
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let result = '';
for (let i = 0; i
insomnia.setEnvironmentVariable('session_id', result);
3、在后续请求中通过{{otp_code}}或{{session_id}}引用对应值。
五、组合时间戳与随机数生成复合动态变量
某些场景需同时包含时间与随机成分(如请求ID:t1746716227_rAbC3x),此时须在单个脚本中协同生成并拼接,再统一写入一个环境变量。
1、在请求的Script标签页中,输入以下复合生成脚本:
const ts = Date.now().toString().slice(-6);
const rand = Math.random().toString(36).substring(2, 8).toUpperCase();
insomnia.setEnvironmentVariable('req_id', `t${ts}_r${rand}`);
2、该脚本将生成形如t162278_rABX3K的唯一请求标识符。
3、在请求URL或Header中直接使用{{req_id}}即可完成注入。