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

75 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 接口限速测试脚本
这个目录包含了用于测试API接口限速功能的脚本。
## 前置条件
在运行测试脚本之前,请确保安装了所需的依赖:
```bash
npm install axios
```
## 可用测试脚本
### 1. 功能测试 (test-rate-limit.js)
测试不同类型的限速功能是否正常工作包括全局限速、API限速、写操作限速和删除操作限速。
```bash
npm run test:rate-limit
# 或直接运行
node scripts/test-rate-limit.js
```
### 2. 压力测试 (stress-test.js)
对指定端点进行高并发请求,测试限速在高负载下的表现。
```bash
npm run test:stress
# 或直接运行
node scripts/stress-test.js
```
### 3. 分布式测试 (distributed-test.js)
模拟多个不同IP地址的请求测试基于IP的限速是否有效。
```bash
npm run test:distributed
# 或直接运行
node scripts/distributed-test.js
```
### 4. 运行所有测试 (run-all-tests.js)
按顺序运行所有测试,并在测试之间添加适当的延迟以重置限速计数器。
```bash
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`): 请求异常
测试完成后,会显示总体统计信息,包括总请求数、成功请求数、被限速请求数、错误请求数和限速比例。