1
0
mirror of https://github.com/ZeroCatDev/ClassworksKV.git synced 2025-07-01 20:09:23 +00:00
ClassworksKV/scripts/README.md

1.9 KiB
Raw Blame History

接口限速测试脚本

这个目录包含了用于测试API接口限速功能的脚本。

前置条件

在运行测试脚本之前,请确保安装了所需的依赖:

npm install axios

可用测试脚本

1. 功能测试 (test-rate-limit.js)

测试不同类型的限速功能是否正常工作包括全局限速、API限速、写操作限速和删除操作限速。

npm run test:rate-limit
# 或直接运行
node scripts/test-rate-limit.js

2. 压力测试 (stress-test.js)

对指定端点进行高并发请求,测试限速在高负载下的表现。

npm run test:stress
# 或直接运行
node scripts/stress-test.js

3. 分布式测试 (distributed-test.js)

模拟多个不同IP地址的请求测试基于IP的限速是否有效。

npm run test:distributed
# 或直接运行
node scripts/distributed-test.js

4. 运行所有测试 (run-all-tests.js)

按顺序运行所有测试,并在测试之间添加适当的延迟以重置限速计数器。

npm run test:all-limits
# 或直接运行
node scripts/run-all-tests.js

配置测试参数

每个测试脚本的开头都有配置参数,可以根据需要进行调整:

  • BASE_URL: API服务器的基础URL默认为 http://localhost:3000
  • CONCURRENT_REQUESTS: 并发请求数(仅适用于压力测试)
  • TOTAL_REQUESTS: 总请求数
  • SIMULATED_IPS: 模拟的IP数量仅适用于分布式测试
  • REQUESTS_PER_IP: 每个IP的请求数仅适用于分布式测试
  • TEST_ENDPOINT: 测试的API端点

测试结果说明

测试脚本会输出彩色的测试进度和结果统计信息:

  • 绿色点(.): 成功的请求
  • 黄色L(L): 被限速的请求
  • 红色E(E): 错误的请求
  • 红色X(X): 请求异常

测试完成后,会显示总体统计信息,包括总请求数、成功请求数、被限速请求数、错误请求数和限速比例。