You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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集合,用自定义脚本实现:

  1. 导出集合:在Thunder Client中右键目标集合→「Export」,保存为JSON文件(比如my-collection.json)
  2. 编写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));
    
  3. 运行脚本:
    • 安装依赖:npm install axios
    • 执行命令:node run-collection.js

补充

目前Thunder Client官方暂未推出类似newman的CLI工具,上述两种方法是当前实现需求的最简方案。如果需要环境变量、测试脚本等复杂逻辑,可以在Node.js脚本中进一步扩展。

内容的提问来源于stack exchange,提问作者pbaranski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:12:42