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

MVC Web API每日2500次调用上限测试方案咨询(工具/JS脚本)

测试Web API每日调用限制的解决方案

嘿,我来帮你搞定这个API调用限制的测试需求!不管你想用现成的在线工具,还是自己写脚本控制,这里都有合适的方案:

一、在线工具方案

不需要写代码的话,这两个工具上手很快:

  • Postman 集合运行器:把你的API请求保存到Postman的集合里,打开集合运行器后,直接设置迭代次数为2500次就能批量发起调用。它会实时展示每个请求的响应状态,一旦触发限制(比如返回429状态码),你能立刻看到结果,还能导出测试报告。
  • 轻量在线负载测试工具:不少免费在线工具支持自定义请求次数和方法,你只需要填入你的API URL,选择GET请求,设置调用次数为2500,就能自动执行批量调用。注意选那些允许单次发起大量请求的工具,避免工具自身的限制影响测试结果。

二、自定义JS脚本方案(Node.js)

如果想更灵活地控制测试过程,用Node.js写脚本是个好选择,步骤很简单:

  1. 先准备环境:确保安装了Node.js,然后初始化项目并安装axios(简化HTTP请求):
npm init -y
npm install axios
  1. 创建测试脚本文件(比如test-api-limit.js),写入以下代码:
const axios = require('axios');

// 替换成你的API地址
const API_URL = 'http://localhost:63091/api/CustomerSite/GetSiteList?accessToken=123456789';
const MAX_CALLS = 2500;
let completed = 0;
let failed = 0;

async function invokeAPI() {
  try {
    const response = await axios.get(API_URL);
    console.log(`第 ${completed + 1} 次调用成功 | 状态码:${response.status}`);
    
    // 检测是否触发限制,提前终止脚本
    if (response.status === 429) {
      console.log('⚠️ 已触发每日调用限制!');
      process.exit();
    }
  } catch (error) {
    failed++;
    console.error(`第 ${completed + 1} 次调用失败:${error.message}`);
    
    // 捕获429错误,及时终止
    if (error.response?.status === 429) {
      console.log('⚠️ 已触发每日调用限制!');
      process.exit();
    }
  } finally {
    completed++;
    // 未达到次数则继续调用
    if (completed < MAX_CALLS) {
      invokeAPI();
    } else {
      console.log(`\n✅ 测试完成!总调用:${MAX_CALLS} | 成功:${completed - failed} | 失败:${failed}`);
    }
  }
}

// 启动测试
invokeAPI();
  1. 运行脚本:
node test-api-limit.js

浏览器控制台脚本(应急方案)

如果临时不想用Node.js,也可以用浏览器控制台,但要注意跨域问题(API需配置CORS允许本地访问):

const API_URL = 'http://localhost:63091/api/CustomerSite/GetSiteList?accessToken=123456789';
let count = 0;
const MAX = 2500;

function callAPI() {
  fetch(API_URL)
    .then(res => {
      console.log(`第 ${++count} 次调用 | 状态码:${res.status}`);
      if (res.status === 429) {
        console.log('⚠️ 触发调用限制!');
        return;
      }
      if (count < MAX) {
        setTimeout(callAPI, 10); // 加小延迟避免浏览器请求阻塞
      } else {
        console.log('✅ 测试结束!');
      }
    })
    .catch(err => {
      console.error(`第 ${++count} 次调用失败:${err}`);
      if (count < MAX) callAPI();
    });
}

callAPI();

不过浏览器的并发请求数有限制,测试效率不如Node.js脚本高,适合临时快速验证。

💡 小提示:测试前记得确认当天还没有调用过这个API,避免之前的调用次数影响测试结果哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:47:18