需通过五种结构化方式批量运行Insomnia测试:一、集合运行器可视化执行;二、Inso CLI命令行自动化;三、Test Suite精细控制;四、环境变量动态切换;五、预请求脚本参数化驱动。

如果您已在Insomnia中配置多个带测试脚本的API请求,但每次仍需手动逐个执行验证,则需通过结构化方式批量运行这些请求以提升测试效率。以下是实现批量测试执行的具体路径:
一、使用Insomnia桌面端集合运行器批量执行
集合运行器是Insomnia内置的可视化批量执行工具,支持按顺序运行整个Collection或指定子集,并实时显示每个请求的响应状态与测试结果,适用于本地快速验证和调试。
1、点击顶部菜单栏的Runner按钮,打开集合运行器界面。
2、在左侧列表中选择已配置测试脚本的目标Collection(确保其中各请求的Tests标签页内含有有效JavaScript断言)。
3、可选:在“Iterations”字段中输入执行轮数,如需单次运行则保持默认值1。
4、可选:勾选“Delay between requests”并设置毫秒级间隔,避免服务端限流。
5、点击Run Collection按钮启动批量执行,右侧将滚动显示每项请求的耗时、状态码及测试通过/失败详情。
二、通过Inso CLI命令行批量运行测试套件
Inso CLI提供无界面、可脚本化的批量测试能力,适用于自动化回归场景及CI/CD集成,输出结构化结果便于后续解析与归档。
1、确认系统已全局安装inso:npm install -g insomnia-inso。
2、进入Insomnia项目所在目录(即包含.insomnia文件夹的根路径)。
3、执行以下命令运行指定Collection全部测试:inso run test "My API Collection" --ci --reporter json --output report.json。
4、若需跳过特定环境变量依赖,添加--env none参数强制使用空环境上下文运行。
5、命令完成后检查当前目录生成的report.json,其内容包含每个测试用例的status、duration、assertions、error信息等字段。
三、基于Test Suite层级批量触发执行
Insomnia支持在Collection下创建独立Test Suite容器,将请求与断言逻辑封装为可复用单元,从而实现更精细的批量控制粒度,避免全量Collection冗余执行。
1、在左侧导航栏右键目标Collection,选择Add Test Suite。
2、为套件命名(如“Payment Flow Tests”),并保存。
3、将已编写测试脚本的请求拖入该Test Suite节点下。
4、在集合运行器中展开Collection,勾选仅该Test Suite节点,再点击Run。
5、执行结果将仅包含该套件内请求,且报告中会以套件名称作为分组标识,便于定向排查。
四、利用环境变量控制批量执行范围
通过动态注入环境变量,可在不修改请求配置的前提下切换批量执行的目标接口集群或行为分支,适用于多租户、灰度发布等复杂测试场景。
1、在Insomnia中预先定义多个环境(如dev、staging、prod),并在各环境中设置变量api_base_url与enable_payment_flow。
2、在请求URL中引用变量:{{api_base_url}}/v1/orders。
3、在Tests脚本中加入条件断言:if (pm.environment.get("enable_payment_flow") === "true") { pm.test("Payment response includes fee", () => pm.expect(pm.response.json().fee).to.exist); }。
4、运行时通过CLI指定环境:inso run test "My API Collection" --env staging,即可批量激活对应环境下的全部条件化测试逻辑。
五、借助JavaScript预请求脚本驱动批量参数化执行
在Collection级别设置预请求脚本,可动态生成多组参数并循环触发子请求,实现数据驱动的批量测试,特别适用于边界值、枚举值遍历等用例。
1、右键目标Collection,选择Edit Collection,切换至“Pre-request Script”标签页。
2、输入如下脚本以构造3组不同user_id参数:const userIds = ["u001", "u002", "u003"]; pm.collectionVariables.set("batch_ids", JSON.stringify(userIds));。
3、在具体请求的URL中使用变量占位:{{api_base_url}}/users/{{batch_ids}}(需配合插件或自定义逻辑解析数组)。
4、更推荐方式:在预请求脚本中调用pm.sendRequest发送多次独立请求,例如:userIds.forEach(id => pm.sendRequest(`GET {{api_base_url}}/users/${id}`, (err, res) => { console.log(res.code); }));。
5、注意该方式不会自动计入集合运行器统计,但可在Console中查看全部执行日志与响应状态。

















