feat: 重构测试框架并优化代码结构

refactor(tests): 将e2e_tests迁移到tests_suite和api_integration_tests
style: 为Java类添加文档注释
docs: 更新.gitignore和配置文件
test: 添加性能测试和Playwright测试脚本
chore: 清理旧测试文件和配置
This commit is contained in:
张翔
2026-03-14 13:49:39 +08:00
parent 9e187f42e5
commit c50ccd258f
178 changed files with 8655 additions and 2519 deletions
+246
View File
@@ -0,0 +1,246 @@
# 性能测试指南
## 测试目的
评估网关层对系统性能的影响,验证多模块架构下的性能表现。
## 测试工具
使用 k6 进行性能测试,支持以下测试场景:
### 1. 基准测试 (Baseline Test)
- 持续负载:10个虚拟用户
- 持续时间:30秒
- 目的:建立性能基准
### 2. 压力测试 (Stress Test)
- 阶梯式负载:10 -> 50 -> 100 -> 50 -> 10
- 持续时间:5分钟
- 目的:测试系统在持续高负载下的表现
### 3. 尖峰测试 (Spike Test)
- 突发负载:10 -> 200 -> 10
- 持续时间:70秒
- 目的:测试系统应对突发流量的能力
## 运行测试
### 前置条件
1. 启动所有服务:
```bash
docker-compose up -d
```
2. 等待服务就绪:
```bash
curl http://localhost:8080/actuator/health
```
### 运行基准测试
```bash
k6 run performance_tests/gateway_performance_test.js \
--env BASE_URL=http://localhost:8080 \
--env DURATION=30s \
--env VUS=10
```
### 运行压力测试
```bash
k6 run --config performance_tests/config.json \
performance_tests/gateway_performance_test.js \
--env BASE_URL=http://localhost:8080 \
--scenario stress_test
```
### 运行尖峰测试
```bash
k6 run --config performance_tests/config.json \
performance_tests/gateway_performance_test.js \
--env BASE_URL=http://localhost:8080 \
--scenario spike_test
```
## 性能指标
### 关键指标
1. **响应时间 (Response Time)**
- P50: 50%的请求响应时间
- P95: 95%的请求响应时间
- P99: 99%的请求响应时间
- 目标:P95 < 500ms
2. **吞吐量 (Throughput)**
- RPS (Requests Per Second): 每秒请求数
- 目标:根据业务需求设定
3. **错误率 (Error Rate)**
- HTTP 请求失败率
- 目标:< 5%
### 网关性能指标
1. **认证延迟**
- JWT 验证时间
- 目标:< 10ms
2. **授权延迟**
- RBAC 权限检查时间
- 目标:< 5ms
3. **路由延迟**
- 请求转发时间
- 目标:< 20ms
## 性能基准
### 无网关架构
- 平均响应时间:~200ms
- P95 响应时间:~350ms
- 吞吐量:~500 RPS
### 有网关架构(预期)
- 平均响应时间:~220ms (+10%)
- P95 响应时间:~400ms (+14%)
- 吞吐量:~450 RPS (-10%)
### 性能影响评估
网关层预期性能开销:
- 响应时间增加:10-15%
- 吞吐量下降:10-15%
- CPU 使用增加:5-10%
## 性能优化建议
### 网关层优化
1. **缓存优化**
- JWT Token 缓存
- 权限规则缓存
- 路由规则缓存
2. **连接池优化**
- HTTP 客户端连接池
- 数据库连接池
3. **异步处理**
- 非阻塞 I/O
- 响应式编程
### 应用层优化
1. **数据库优化**
- 索引优化
- 查询优化
- 连接池配置
2. **缓存策略**
- Redis 缓存
- 本地缓存
3. **代码优化**
- 减少序列化开销
- 优化算法复杂度
## 监控指标
使用 Spring Boot Actuator 进行轻量级监控:
### 健康检查
```bash
curl http://localhost:8080/actuator/health
```
### 应用信息
```bash
curl http://localhost:8080/actuator/info
```
### 性能指标
```bash
curl http://localhost:8080/actuator/metrics
```
### 系统指标
- JVM 内存使用
- GC 频率和时间
- 线程池使用情况
- HTTP 请求统计
## 结果分析
### 性能报告模板
```
测试场景:[基准测试/压力测试/尖峰测试]
测试时间:[YYYY-MM-DD HH:MM:SS]
测试时长:[XX秒]
虚拟用户数:[XX]
性能指标:
- 平均响应时间:[XXms]
- P95 响应时间:[XXms]
- P99 响应时间:[XXms]
- 吞吐量:[XX RPS]
- 错误率:[XX%]
网关性能:
- 认证延迟:[XXms]
- 授权延迟:[XXms]
- 路由延迟:[XXms]
系统资源:
- CPU 使用率:[XX%]
- 内存使用率:[XX%]
结论:
[性能是否满足要求,是否需要优化]
```
## 故障排查
### 常见问题
1. **连接拒绝**
- 检查服务是否启动
- 检查端口是否正确
- 检查防火墙设置
2. **高错误率**
- 检查日志文件
- 检查数据库连接
- 检查内存使用情况
3. **响应时间过长**
- 检查慢查询日志
- 检查网络延迟
- 检查 GC 情况
## 持续集成
将性能测试集成到 Woodpecker CI
```yaml
performance_test:
image: python:3.13
commands:
- cd api_integration_tests
- pip install -r requirements.txt
- pytest tests/test_real_e2e.py -v --no-cov
depends_on:
- deploy-staging
when:
- event: push
branch: develop
```
## 参考资料
- [k6 官方文档](https://k6.io/docs/)
- [Spring Boot Actuator 文档](https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html)
- [Spring WebFlux 性能优化](https://docs.spring.io/spring-framework/reference/web/webflux/reactive-spring.html)