如何使用Thunder Client(或CLI)多次运行集合/请求并添加延迟
使用Thunder Client实现批量运行集合/请求(带延迟)的最简方法
Thunder Client本身没有官方的命令行批量运行工具(类似Postman的newman),但可以通过以下两种方式实现你要的效果:
一、VS Code插件内直接实现
1. 集合批量运行(带迭代次数)
- 打开Thunder Client,找到目标集合,点击集合右上角的「Run」按钮
- 在运行面板中找到「Iterations」选项,设置你需要的运行次数(比如200次)
2. 添加请求间延迟
Thunder Client内置没有直接设置延迟的选项,可通过Pre-Request Script实现:
- 若要给整个集合的所有请求加延迟:右键集合→「Edit Collection」,切换到「Pre-Request」标签页,添加以下代码:
// 延迟2000毫秒(2秒) await new Promise(resolve => setTimeout(resolve, 2000)); - 若仅给单个请求加延迟:打开目标请求,切换到「Pre-Request」标签页添加上述代码
3. 单个请求批量运行
- 打开目标请求,点击右上角「Run」→「Run Multiple Times」,在弹窗中设置运行次数即可(同样可通过Pre-Request Script加延迟)
二、命令行方式(借助Node.js脚本)
如果必须用命令行执行,可以导出Thunder Client集合,用自定义脚本实现:
- 导出集合:在Thunder Client中右键目标集合→「Export」,保存为JSON文件(比如
my-collection.json) - 编写Node.js脚本(保存为
run-collection.js):const fs = require('fs'); const axios = require('axios'); // 配置参数 const config = { collectionPath: './my-collection.json', iterations: 200, // 总运行次数 delayMs: 2000 // 请求间延迟(毫秒) }; // 延迟工具函数 const delay = ms => new Promise(resolve => setTimeout(resolve, ms)); // 批量执行逻辑 async function runBatch() { const collection = JSON.parse(fs.readFileSync(config.collectionPath, 'utf8')); for (let iter = 1; iter <= config.iterations; iter++) { console.log(`=== 第 ${iter} 次迭代开始 ===`); for (const req of collection.requests) { // 构造请求参数 const requestOpts = { method: req.method, url: req.url, headers: req.headers?.reduce((acc, h) => ({ ...acc, [h.name]: h.value }), {}) || {} }; // 添加请求体(如果有) if (req.body?.raw) { requestOpts.data = req.body.raw; // 自动设置Content-Type(如果未手动指定) if (!requestOpts.headers['Content-Type']) { requestOpts.headers['Content-Type'] = 'application/json'; } } try { const res = await axios(requestOpts); console.log(`✅ ${req.name} 成功 | 状态码: ${res.status}`); } catch (err) { console.error(`❌ ${req.name} 失败 | 错误: ${err.message}`); } // 请求后延迟 await delay(config.delayMs); } } } // 启动执行 runBatch().catch(err => console.error('批量执行失败:', err)); - 运行脚本:
- 安装依赖:
npm install axios - 执行命令:
node run-collection.js
- 安装依赖:
补充
目前Thunder Client官方暂未推出类似newman的CLI工具,上述两种方法是当前实现需求的最简方案。如果需要环境变量、测试脚本等复杂逻辑,可以在Node.js脚本中进一步扩展。
内容的提问来源于stack exchange,提问作者pbaranski
相关产品推荐
相关产品推荐

