mirror of
https://github.com/ZeroCatDev/ClassworksKV.git
synced 2025-07-01 20:09:23 +00:00
75 lines
1.9 KiB
Markdown
75 lines
1.9 KiB
Markdown
# 接口限速测试脚本
|
||
|
||
这个目录包含了用于测试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`): 请求异常
|
||
|
||
测试完成后,会显示总体统计信息,包括总请求数、成功请求数、被限速请求数、错误请求数和限速比例。 |