Insomnia如何使用预请求脚本处理数据_Insomnia请求前脚本编写方法【高级】

裘德小鎮的故事

裘德小鎮的故事

2026-05-10

331人浏览

原创

insomnia预请求脚本支持五种动态配置:一、设时间戳变量;二、用cryptojs生成hmac-sha256签名头;三、拼接bearer token至authorization头;四、生成uuid作x-request-id;五、解析重写json body嵌套字段。

insomnia如何使用预请求脚本处理数据_insomnia请求前脚本编写方法【高级】

如果您在使用 Insomnia 进行 API 测试时,需要在请求发出前动态生成或修改请求参数、Header、Body 或认证信息,则可通过预请求脚本(Pre-request Script)实现。以下是针对该需求的多种脚本编写方法:

一、设置动态时间戳参数

预请求脚本可用于为请求 URL 或 Body 注入当前时间戳,避免缓存或满足接口对时间参数的校验要求。

1、在 Insomnia 中选中目标请求,点击右侧面板中的 “Pre-request Script” 标签页。

2、输入以下 JavaScript 代码:

const timestamp = Date.now().toString();
insomnia.setEnvironmentVariable('current_timestamp', timestamp);

3、在请求 URL 或 JSON Body 中引用该变量,例如:{{current_timestamp}}

二、生成 HMAC-SHA256 签名头

当后端要求基于密钥与请求内容生成签名并放入 Header 时,可利用 CryptoJS 库在预请求脚本中完成计算。

1、确保 Insomnia 已启用内置的 CryptoJS 支持(Insomnia v8.0+ 默认支持)。

2、在 Pre-request Script 中写入:

const secret = 'your_api_secret';
const message = insomnia.getEnvironmentVariable('method') + ':' + insomnia.getEnvironmentVariable('path');
const hash = CryptoJS.HmacSHA256(message, secret).toString(CryptoJS.enc.Base64);
insomnia.setEnvironmentVariable('auth_signature', hash);

3、在请求 Headers 中添加键值对:X-Signature: {{auth_signature}}

三、从环境变量读取并拼接 Token

适用于 OAuth2 或 JWT 场景,需在请求前组合 access_token 与固定前缀(如 Bearer),并注入 Authorization 头。

Autoppt
Autoppt

Autoppt:打造高效与精美PPT的AI工具

下载

1、确认环境变量中已定义 access_token 字段。

2、在 Pre-request Script 中执行:

const token = insomnia.getEnvironmentVariable('access_token');
if (token) {
  insomnia.setEnvironmentVariable('auth_header_value', 'Bearer ' + token);
}

3、在请求 Headers 中设置:Authorization: {{auth_header_value}}

四、随机生成 UUID 作为请求 ID

用于链路追踪或日志关联,需每次请求前生成唯一字符串并注入 X-Request-ID 头。

1、在 Pre-request Script 中粘贴标准 UUID v4 生成逻辑:

function uuidv4() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    const r = Math.random() * 16 | 0;
    const v = c === 'x' ? r : (r & 0x3 | 0x8);
    return v.toString(16);
  });
}
insomnia.setEnvironmentVariable('request_id', uuidv4());

2、在 Headers 中添加:X-Request-ID: {{request_id}}

五、解析并重写 JSON Body 中的嵌套字段

当原始 Body 是 JSON 格式且需动态替换其中某个深层字段(如 user.id 或 order.items[0].price)时,可先解析再序列化。

1、在 Pre-request Script 中获取当前 Body 内容:

const rawBody = insomnia.getRequestBody();
try {
  const bodyObj = JSON.parse(rawBody);
  bodyObj.user.timestamp = Date.now();
  bodyObj.user.session_id = 'sess_' + Math.random().toString(36).substr(2, 9);
  insomnia.setRequestBody(JSON.stringify(bodyObj));
} catch (e) {
  // 忽略非 JSON 格式 Body
}

2、确保请求 Body 类型为 JSON,且未勾选 “Automatically set Content-Type header” 的覆盖选项。

相关专题

更多
Qt Creator新建项目使用教程
Qt Creator新建项目使用教程

本专题整理 Qt Creator 新建项目、打开已有工程、项目模板选择、目录结构、源文件管理、构建目录、运行配置和项目迁移方法,重点解决新手不知道选 qmake 还是 CMake、项目打不开、文件不参与编译等常见问题。

2026.08.05

0

10

maven常用插件使用大全
maven常用插件使用大全

PHP中文网精心整理Maven主流插件用法合集,涵盖编译、测试、打包等常用插件使用大全。从基础配置到进阶实战,详细解析各插件功能与适用场景,助你轻松掌握Maven自动化构建,解决Java项目开发痛点,是开发者必备的实用指南。

2026.08.05

0

31

PyCharm快速入门指南
PyCharm快速入门指南

本专题汇总了PyCharm快速入门的全套指南与教程,涵盖从官网下载安装、创建第一个Python项目、配置虚拟环境,到代码编辑、运行调试等基础操作,并整理了版本控制(Git)集成、常用高效快捷键及实用插件等进阶技巧,助你快速上手这款高效的Python IDE。

2026.08.05

2

17

PyCharm运行程序教程大全
PyCharm运行程序教程大全

本专题汇总了PyCharm运行程序的多种方式与详细操作步骤,涵盖通过主菜单Run、点击工具栏绿色三角图标、使用快捷键Shift+F10(或Ctrl+Shift+F10)等基本运行方法,以及配置运行/调试参数、设置PYTHONPATH环境变量、管理多脚本运行与交互式Python控制台调试等进阶技巧,助您全面掌握在PyCharm中高效运行与管理Python程序的方法。

2026.08.05

0

14

Maven零基础入门教程
Maven零基础入门教程

本合集由PHP中文网精心整理,提供Maven零基础入门到完整使用的保姆级教程。内容涵盖环境安装、核心配置、仓库管理及项目构建等核心知识点。通过详细步骤解析与代码示例,助你快速掌握Maven的依赖管理与自动化构建,轻松解决Java项目中的各种痛点,是新手入门与进阶的必备指南。

2026.08.05

2

18

Maven安装及配置教程
Maven安装及配置教程

本合集由PHP中文网精心整理,提供Maven安装配置与环境配置详情指南。内容涵盖Maven下载、解压安装、环境变量配置、阿里云镜像加速及本地仓库修改等全流程。教程通俗易懂,帮助开发者轻松解决依赖管理难题,快速掌握Maven核心构建技能,是Java开发者的必备实战指南。

2026.08.05

2

24

Selenium WebDriver元素定位与页面操作教程
Selenium WebDriver元素定位与页面操作教程

本专题整理Selenium WebDriver元素定位、XPath、CSS Selector、等待机制、窗口切换、Frame处理、Alert弹窗、Cookie操作和文件上传等核心用法。

2026.08.05

8

26

Selenium Grid分布式测试与并行执行教程
Selenium Grid分布式测试与并行执行教程

本专题整理Selenium Grid架构、远程WebDriver、并行测试、Docker部署、Kubernetes动态Grid、浏览器矩阵和测试环境扩展方法,适合进阶自动化测试团队使用。

2026.08.05

4

18

Selenium常见报错排查与自动化测试稳定性
Selenium常见报错排查与自动化测试稳定性

本专题整理Selenium常见报错、驱动版本问题、元素找不到、点击失败、等待超时、浏览器闪退、脚本不稳定和测试用例维护方法。

2026.08.05

0

17

热门下载

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

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习