c50ccd258f
refactor(tests): 将e2e_tests迁移到tests_suite和api_integration_tests style: 为Java类添加文档注释 docs: 更新.gitignore和配置文件 test: 添加性能测试和Playwright测试脚本 chore: 清理旧测试文件和配置
4.7 KiB
4.7 KiB
性能测试指南
测试目的
评估网关层对系统性能的影响,验证多模块架构下的性能表现。
测试工具
使用 k6 进行性能测试,支持以下测试场景:
1. 基准测试 (Baseline Test)
- 持续负载:10个虚拟用户
- 持续时间:30秒
- 目的:建立性能基准
2. 压力测试 (Stress Test)
- 阶梯式负载:10 -> 50 -> 100 -> 50 -> 10
- 持续时间:5分钟
- 目的:测试系统在持续高负载下的表现
3. 尖峰测试 (Spike Test)
- 突发负载:10 -> 200 -> 10
- 持续时间:70秒
- 目的:测试系统应对突发流量的能力
运行测试
前置条件
- 启动所有服务:
docker-compose up -d
- 等待服务就绪:
curl http://localhost:8080/actuator/health
运行基准测试
k6 run performance_tests/gateway_performance_test.js \
--env BASE_URL=http://localhost:8080 \
--env DURATION=30s \
--env VUS=10
运行压力测试
k6 run --config performance_tests/config.json \
performance_tests/gateway_performance_test.js \
--env BASE_URL=http://localhost:8080 \
--scenario stress_test
运行尖峰测试
k6 run --config performance_tests/config.json \
performance_tests/gateway_performance_test.js \
--env BASE_URL=http://localhost:8080 \
--scenario spike_test
性能指标
关键指标
-
响应时间 (Response Time)
- P50: 50%的请求响应时间
- P95: 95%的请求响应时间
- P99: 99%的请求响应时间
- 目标:P95 < 500ms
-
吞吐量 (Throughput)
- RPS (Requests Per Second): 每秒请求数
- 目标:根据业务需求设定
-
错误率 (Error Rate)
- HTTP 请求失败率
- 目标:< 5%
网关性能指标
-
认证延迟
- JWT 验证时间
- 目标:< 10ms
-
授权延迟
- RBAC 权限检查时间
- 目标:< 5ms
-
路由延迟
- 请求转发时间
- 目标:< 20ms
性能基准
无网关架构
- 平均响应时间:~200ms
- P95 响应时间:~350ms
- 吞吐量:~500 RPS
有网关架构(预期)
- 平均响应时间:~220ms (+10%)
- P95 响应时间:~400ms (+14%)
- 吞吐量:~450 RPS (-10%)
性能影响评估
网关层预期性能开销:
- 响应时间增加:10-15%
- 吞吐量下降:10-15%
- CPU 使用增加:5-10%
性能优化建议
网关层优化
-
缓存优化
- JWT Token 缓存
- 权限规则缓存
- 路由规则缓存
-
连接池优化
- HTTP 客户端连接池
- 数据库连接池
-
异步处理
- 非阻塞 I/O
- 响应式编程
应用层优化
-
数据库优化
- 索引优化
- 查询优化
- 连接池配置
-
缓存策略
- Redis 缓存
- 本地缓存
-
代码优化
- 减少序列化开销
- 优化算法复杂度
监控指标
使用 Spring Boot Actuator 进行轻量级监控:
健康检查
curl http://localhost:8080/actuator/health
应用信息
curl http://localhost:8080/actuator/info
性能指标
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%]
结论:
[性能是否满足要求,是否需要优化]
故障排查
常见问题
-
连接拒绝
- 检查服务是否启动
- 检查端口是否正确
- 检查防火墙设置
-
高错误率
- 检查日志文件
- 检查数据库连接
- 检查内存使用情况
-
响应时间过长
- 检查慢查询日志
- 检查网络延迟
- 检查 GC 情况
持续集成
将性能测试集成到 Woodpecker CI:
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