Skip to content

测试计划

测试计划

项目概述

Petclinic 是一个宠物医院系统。系统中可以完成宠物主人信息、宠物信息、宠物主人与宠物的对应关系管理以及宠物医生对应的信息管理。本次测试的功能为系统性能测试,包括响应时间、吞吐量、资源使用率等性能指标的测试。

测试目标

通过性能测试,达到以下目标:

  • 验证系统在正常负载下的性能表现
  • 确定系统的性能瓶颈和极限
  • 验证系统在峰值负载下的稳定性
  • 提供性能优化建议
  • 建立性能基线数据

测试范围和重点

功能模块
  • 宠物主人搜索功能性能测试
  • 宠物主人详情查询性能测试
  • 创建宠物主人功能性能测试
  • 更新宠物主人功能性能测试
  • 删除宠物主人功能性能测试
性能指标
  • 响应时间测试
  • 吞吐量测试
  • 并发用户数测试
  • 资源使用率测试
  • 系统稳定性测试
测试场景
  • 基准测试场景
  • 负载测试场景
  • 压力测试场景
  • 峰值测试场景
  • 容量测试场景

测试策略

性能测试方法
  1. 使用JMeter进行接口性能测试
  2. 使用Apache Bench进行简单压力测试
  3. 使用wrk进行高性能压力测试
  4. 使用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名(支持)
环境资源
  1. 性能测试环境:独立服务器
  2. 测试数据库:MySQL 8.0.30
  3. 监控环境:Prometheus + Grafana
  4. 压测工具: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%
测试质量标准
  • 所有测试场景必须执行完成
  • 测试数据必须真实有效
  • 测试结果必须准确可靠
  • 测试报告必须详细完整

交付物

  1. 性能测试脚本
  2. 测试数据文件
  3. 测试执行报告
  4. 性能分析报告
  5. 优化建议文档
  6. 性能基线数据