测试计划
测试计划¶
项目概述¶
Petclinic 是一个宠物医院系统。系统中可以完成宠物主人信息、宠物信息、宠物主人与宠物的对应关系管理以及宠物医生对应的信息管理。本次测试的功能为系统性能测试,包括响应时间、吞吐量、资源使用率等性能指标的测试。
测试目标¶
通过性能测试,达到以下目标:
- 验证系统在正常负载下的性能表现
- 确定系统的性能瓶颈和极限
- 验证系统在峰值负载下的稳定性
- 提供性能优化建议
- 建立性能基线数据
测试范围和重点¶
功能模块¶
- 宠物主人搜索功能性能测试
- 宠物主人详情查询性能测试
- 创建宠物主人功能性能测试
- 更新宠物主人功能性能测试
- 删除宠物主人功能性能测试
性能指标¶
- 响应时间测试
- 吞吐量测试
- 并发用户数测试
- 资源使用率测试
- 系统稳定性测试
测试场景¶
- 基准测试场景
- 负载测试场景
- 压力测试场景
- 峰值测试场景
- 容量测试场景
测试策略¶
性能测试方法¶
- 使用JMeter进行接口性能测试
- 使用Apache Bench进行简单压力测试
- 使用wrk进行高性能压力测试
- 使用Gatling进行复杂场景测试
监控策略¶
- 使用Prometheus收集系统监控数据
- 使用Grafana展示监控图表
- 使用JProfiler分析Java应用性能
- 使用VisualVM监控JVM状态
数据收集策略¶
- 收集响应时间数据
- 收集吞吐量数据
- 收集错误率数据
- 收集系统资源使用数据
项目里程碑¶
| 任务 | 开始时间 | 结束时间 |
|---|---|---|
| 需求了解/评审 | 20xx/xx/27 | 20xx/xx/27(1天) |
| 测试环境搭建 | 20xx/xx/28 | 20xx/xx/29(2天) |
| 测试数据准备 | 20xx/xx/30 | 20xx/xx/31(2天) |
| 测试脚本编写 | 20xx/xx/01 | 20xx/xx/03(3天) |
| 基准测试执行 | 20xx/xx/04 | 20xx/xx/04(1天) |
| 负载测试执行 | 20xx/xx/05 | 20xx/xx/06(2天) |
| 压力测试执行 | 20xx/xx/07 | 20xx/xx/08(2天) |
| 峰值测试执行 | 20xx/xx/09 | 20xx/xx/09(1天) |
| 容量测试执行 | 20xx/xx/10 | 20xx/xx/10(1天) |
| 测试结果分析 | 20xx/xx/11 | 20xx/xx/12(2天) |
| 测试报告编写 | 20xx/xx/13 | 20xx/xx/13(1天) |
测试资源¶
人力资源¶
- 性能测试leader 1名
- 性能测试工程师 2名
- 系统管理员 1名
- 开发工程师 1名(支持)
环境资源¶
- 性能测试环境:独立服务器
- 测试数据库:MySQL 8.0.30
- 监控环境:Prometheus + Grafana
- 压测工具:JMeter、wrk、Gatling
工具资源¶
- 压力测试工具:JMeter 5.5.0
- 监控工具:Prometheus 2.40.0
- 可视化工具:Grafana 9.3.0
- 性能分析工具:JProfiler 13.0.0
- 系统监控工具:VisualVM 2.1.0
测试环境配置¶
硬件配置¶
| 组件 | 配置 | 备注 |
|---|---|---|
| 应用服务器 | CPU: 8核, 内存: 16GB, 硬盘: 200GB SSD | 性能测试环境 |
| 数据库服务器 | CPU: 8核, 内存: 16GB, 硬盘: 500GB SSD | MySQL数据库 |
| 缓存服务器 | CPU: 4核, 内存: 8GB, 硬盘: 100GB SSD | Redis缓存 |
| 监控服务器 | CPU: 4核, 内存: 8GB, 硬盘: 100GB SSD | 监控数据收集 |
软件配置¶
| 软件 | 版本 | 配置参数 | 备注 |
|---|---|---|---|
| Java | 11.0.16 | -Xms4g -Xmx8g -XX:+UseG1GC | JVM参数优化 |
| Spring Boot | 2.7.0 | server.tomcat.max-threads=200 | 应用配置 |
| MySQL | 8.0.30 | innodb_buffer_pool_size=8G | 数据库配置 |
| Redis | 6.2.7 | maxmemory 4gb | 缓存配置 |
测试数据准备¶
基础测试数据¶
| 数据类型 | 数据量 | 生成方式 | 备注 |
|---|---|---|---|
| 宠物主人信息 | 10万条 | 脚本生成 | 基础数据 |
| 宠物信息 | 20万条 | 脚本生成 | 关联数据 |
| 医生信息 | 1000条 | 脚本生成 | 基础数据 |
| 宠物类型 | 100条 | 手工录入 | 基础数据 |
测试数据特征¶
| 数据特征 | 分布 | 备注 |
|---|---|---|
| Last Name长度 | 1-50字符 | 均匀分布 |
| 地址长度 | 10-200字符 | 均匀分布 |
| 电话号码 | 10-15位数字 | 随机生成 |
| 城市名称 | 100个城市 | 随机选择 |
测试场景设计¶
1. 基准测试场景¶
目的: 确定系统在正常负载下的性能基线
测试参数: - 并发用户数:1 - 测试持续时间:10分钟 - 操作类型:查询、创建、更新、删除 - 操作比例:查询70%,创建15%,更新10%,删除5%
预期结果: - 响应时间:查询 ≤ 1秒,其他操作 ≤ 2秒 - 吞吐量:查询 ≥ 100 TPS,其他操作 ≥ 50 TPS - 错误率:≤ 0.1%
2. 负载测试场景¶
目的: 验证系统在预期负载下的性能表现
测试参数: - 并发用户数:50 - 测试持续时间:30分钟 - 操作类型:混合操作 - 操作比例:查询70%,创建15%,更新10%,删除5%
预期结果: - 响应时间:95%的请求 ≤ 2秒 - 吞吐量:≥ 50 TPS - 错误率:≤ 0.1% - 资源使用率:CPU ≤ 80%,内存 ≤ 85%
3. 压力测试场景¶
目的: 确定系统的性能极限
测试参数: - 并发用户数:10-200(逐步增加) - 测试持续时间:2小时 - 操作类型:混合操作 - 增加策略:每10分钟增加20个用户
预期结果: - 找到系统性能瓶颈 - 确定系统最大承载能力 - 识别性能下降点
4. 峰值测试场景¶
目的: 验证系统在峰值负载下的表现
测试参数: - 并发用户数:100 - 测试持续时间:1小时 - 操作类型:主要是查询操作 - 操作比例:查询90%,其他10%
预期结果: - 响应时间:95%的请求 ≤ 3秒 - 吞吐量:≥ 80 TPS - 错误率:≤ 0.5% - 系统稳定运行
5. 容量测试场景¶
目的: 确定系统在大量数据下的性能表现
测试参数: - 数据量:10万条宠物主人记录 - 并发用户数:50 - 测试持续时间:1小时 - 操作类型:主要是查询操作
预期结果: - 响应时间:95%的请求 ≤ 2秒 - 吞吐量:≥ 40 TPS - 错误率:≤ 0.1% - 数据库性能稳定
风险列表¶
本次测试过程中,可能出现的风险如下:
- 测试环境不稳定导致测试结果不准确
- 测试数据准备不充分影响测试效果
- 测试工具配置不当影响测试结果
- 系统资源不足影响测试执行
- 测试时间安排不合理影响测试进度
质量保证¶
测试覆盖率¶
- 功能模块覆盖率:100%
- 性能指标覆盖率:100%
- 测试场景覆盖率:100%
测试质量标准¶
- 所有测试场景必须执行完成
- 测试数据必须真实有效
- 测试结果必须准确可靠
- 测试报告必须详细完整
交付物¶
- 性能测试脚本
- 测试数据文件
- 测试执行报告
- 性能分析报告
- 优化建议文档
- 性能基线数据