Redmine系统性能测试计划¶
1. 性能测试计划概述¶
1.1 测试目标¶
本性能测试计划旨在验证Redmine系统在各种负载条件下的性能表现,确保系统能够满足用户对响应时间、吞吐量和并发用户数的要求,识别性能瓶颈并提供优化建议。
1.2 测试范围¶
- 功能模块:用户登录、项目管理、问题跟踪、过滤器功能
- 性能指标:响应时间、吞吐量、并发用户数、资源使用率
- 测试类型:负载测试、压力测试、容量测试、稳定性测试
- 测试环境:开发环境、测试环境、预生产环境
1.3 测试策略¶
采用分层测试策略,从单用户到多用户,从轻负载到重负载,逐步验证系统性能,确保测试结果的准确性和可靠性。
2. 测试环境¶
2.1 硬件环境¶
2.1.1 服务器配置¶
| 组件 | 配置要求 | 说明 |
|---|---|---|
| CPU | Intel Xeon 8核 2.4GHz | 或同等性能CPU |
| 内存 | 16GB DDR4 | 推荐32GB |
| 硬盘 | 500GB SSD | 推荐1TB SSD |
| 网络 | 千兆网卡 | 低延迟网络 |
2.1.2 负载机配置¶
| 组件 | 配置要求 | 数量 |
|---|---|---|
| CPU | Intel i5 4核 | 3台 |
| 内存 | 8GB DDR4 | 3台 |
| 硬盘 | 256GB SSD | 3台 |
| 网络 | 千兆网卡 | 3台 |
2.2 软件环境¶
2.2.1 系统软件¶
| 软件 | 版本 | 说明 |
|---|---|---|
| 操作系统 | CentOS 7.9 | 或Ubuntu 20.04 |
| 数据库 | MySQL | 或PostgreSQL |
| Web服务器 | Nginx 1.20 | + Passenger 6.0 |
| Ruby | Ruby | Redmine运行环境 |
2.2.2 测试工具¶
| 工具 | 版本 | 用途 |
|---|---|---|
| Apache JMeter | 5.4 | 性能测试工具 |
| Grafana | Grafana | 监控数据可视化 |
| Prometheus | Prometheus | 指标收集 |
| Node Exporter | 1.2 | 系统指标收集 |
2.3 测试数据¶
2.3.1 基础数据¶
| 数据类型 | 数量 | 说明 |
|---|---|---|
| 用户账号 | 1000个 | 包含不同角色用户 |
| 项目数据 | 100个 | 不同状态的项目 |
| 问题数据 | 10000个 | 不同类型的问题 |
| 历史数据 | 6个月 | 历史操作记录 |
2.3.2 测试场景数据¶
| 场景类型 | 数据量 | 说明 |
|---|---|---|
| 登录场景 | 1000个用户 | 不同权限用户 |
| 项目管理 | 100个项目 | 不同规模项目 |
| 问题跟踪 | 10000个问题 | 不同状态问题 |
| 搜索场景 | 1000个查询 | 不同复杂度查询 |
3. 性能指标定义¶
3.1 响应时间指标¶
3.1.1 页面响应时间¶
| 页面类型 | 目标值 | 可接受值 | 不可接受值 |
|---|---|---|---|
| 登录页面 | ≤2秒 | ≤3秒 | >5秒 |
| 项目列表 | ≤2秒 | ≤3秒 | >5秒 |
| 项目详情 | ≤2秒 | ≤3秒 | >5秒 |
| 问题列表 | ≤3秒 | ≤5秒 | >8秒 |
| 问题详情 | ≤2秒 | ≤3秒 | >5秒 |
| 搜索页面 | ≤5秒 | ≤8秒 | >15秒 |
3.1.2 操作响应时间¶
| 操作类型 | 目标值 | 可接受值 | 不可接受值 |
|---|---|---|---|
| 用户登录 | ≤2秒 | ≤3秒 | >5秒 |
| 创建项目 | ≤3秒 | ≤5秒 | >8秒 |
| 修改项目 | ≤2秒 | ≤3秒 | >5秒 |
| 创建问题 | ≤3秒 | ≤5秒 | >8秒 |
| 修改问题 | ≤2秒 | ≤3秒 | >5秒 |
| 搜索问题 | ≤5秒 | ≤8秒 | >15秒 |
3.2 吞吐量指标¶
3.2.1 并发用户数¶
| 场景类型 | 目标值 | 可接受值 | 不可接受值 |
|---|---|---|---|
| 正常负载 | 100用户 | 80用户 | <50用户 |
| 峰值负载 | 200用户 | 150用户 | <100用户 |
| 极限负载 | 300用户 | 250用户 | <200用户 |
3.2.2 事务处理能力¶
| 事务类型 | 目标值 | 可接受值 | 不可接受值 |
|---|---|---|---|
| 登录事务 | 50 TPS | 40 TPS | <30 TPS |
| 项目事务 | 30 TPS | 25 TPS | <20 TPS |
| 问题事务 | 40 TPS | 30 TPS | <25 TPS |
| 搜索事务 | 20 TPS | 15 TPS | <10 TPS |
3.3 资源使用指标¶
3.3.1 系统资源¶
| 资源类型 | 目标值 | 警告值 | 危险值 |
|---|---|---|---|
| CPU使用率 | ≤70% | ≤80% | >90% |
| 内存使用率 | ≤75% | ≤85% | >95% |
| 磁盘I/O | ≤70% | ≤80% | >90% |
| 网络带宽 | ≤60% | ≤70% | >80% |
3.3.2 数据库资源¶
| 资源类型 | 目标值 | 警告值 | 危险值 |
|---|---|---|---|
| 连接数 | ≤80% | ≤90% | >95% |
| 查询响应时间 | ≤100ms | ≤200ms | >500ms |
| 锁等待时间 | ≤50ms | ≤100ms | >200ms |
| 缓存命中率 | ≥90% | ≥85% | <80% |
4. 测试用例设计¶
4.1 登录性能测试¶
4.1.1 单用户登录测试¶
| 用例编号 | 用例标题 | 测试目标 | 测试步骤 | 预期结果 |
|---|---|---|---|---|
| PERF_LOGIN_001 | 单用户登录响应时间 | 验证登录响应时间 | 1. 配置单用户登录脚本 2. 执行100次登录 3. 统计响应时间 |
平均响应时间≤2秒 |
| PERF_LOGIN_002 | 登录页面加载时间 | 验证页面加载性能 | 1. 配置页面加载测试 2. 执行100次页面加载 3. 统计加载时间 |
平均加载时间≤2秒 |
4.1.2 并发登录测试¶
| 用例编号 | 用例标题 | 测试目标 | 测试步骤 | 预期结果 |
|---|---|---|---|---|
| PERF_LOGIN_003 | 10用户并发登录 | 验证10用户并发登录性能 | 1. 配置10用户并发 2. 执行5分钟测试 3. 分析响应时间 |
平均响应时间≤3秒 |
| PERF_LOGIN_004 | 50用户并发登录 | 验证50用户并发登录性能 | 1. 配置50用户并发 2. 执行5分钟测试 3. 分析响应时间 |
平均响应时间≤5秒 |
| PERF_LOGIN_005 | 100用户并发登录 | 验证100用户并发登录性能 | 1. 配置100用户并发 2. 执行5分钟测试 3. 分析响应时间 |
平均响应时间≤8秒 |
4.2 项目管理性能测试¶
4.2.1 项目创建性能测试¶
| 用例编号 | 用例标题 | 测试目标 | 测试步骤 | 预期结果 |
|---|---|---|---|---|
| PERF_PROJECT_001 | 单用户创建项目 | 验证项目创建响应时间 | 1. 配置项目创建脚本 2. 执行50次创建 3. 统计响应时间 |
平均响应时间≤3秒 |
| PERF_PROJECT_002 | 10用户并发创建项目 | 验证并发创建项目性能 | 1. 配置10用户并发 2. 执行5分钟测试 3. 分析响应时间 |
平均响应时间≤5秒 |
| PERF_PROJECT_003 | 项目列表加载性能 | 验证项目列表加载时间 | 1. 配置列表加载测试 2. 执行100次加载 3. 统计加载时间 |
平均加载时间≤2秒 |
4.2.2 项目查看性能测试¶
| 用例编号 | 用例标题 | 测试目标 | 测试步骤 | 预期结果 |
|---|---|---|---|---|
| PERF_PROJECT_004 | 项目详情查看性能 | 验证项目详情加载时间 | 1. 配置详情查看测试 2. 执行100次查看 3. 统计加载时间 |
平均加载时间≤2秒 |
| PERF_PROJECT_005 | 项目搜索性能 | 验证项目搜索响应时间 | 1. 配置搜索测试 2. 执行50次搜索 3. 统计响应时间 |
平均响应时间≤3秒 |
4.3 问题跟踪性能测试¶
4.3.1 问题创建性能测试¶
| 用例编号 | 用例标题 | 测试目标 | 测试步骤 | 预期结果 |
|---|---|---|---|---|
| PERF_ISSUE_001 | 单用户创建问题 | 验证问题创建响应时间 | 1. 配置问题创建脚本 2. 执行50次创建 3. 统计响应时间 |
平均响应时间≤3秒 |
| PERF_ISSUE_002 | 20用户并发创建问题 | 验证并发创建问题性能 | 1. 配置20用户并发 2. 执行5分钟测试 3. 分析响应时间 |
平均响应时间≤5秒 |
| PERF_ISSUE_003 | 问题列表加载性能 | 验证问题列表加载时间 | 1. 配置列表加载测试 2. 执行100次加载 3. 统计加载时间 |
平均加载时间≤3秒 |
4.3.2 问题搜索性能测试¶
| 用例编号 | 用例标题 | 测试目标 | 测试步骤 | 预期结果 |
|---|---|---|---|---|
| PERF_ISSUE_004 | 问题搜索性能 | 验证问题搜索响应时间 | 1. 配置搜索测试 2. 执行50次搜索 3. 统计响应时间 |
平均响应时间≤5秒 |
| PERF_ISSUE_005 | 过滤器性能测试 | 验证过滤器响应时间 | 1. 配置过滤器测试 2. 执行50次过滤 3. 统计响应时间 |
平均响应时间≤3秒 |
4.4 综合性能测试¶
4.4.1 混合场景测试¶
| 用例编号 | 用例标题 | 测试目标 | 测试步骤 | 预期结果 |
|---|---|---|---|---|
| PERF_MIXED_001 | 混合业务场景 | 验证综合业务性能 | 1. 配置混合场景脚本 2. 执行30分钟测试 3. 分析综合性能 |
各项指标满足要求 |
| PERF_MIXED_002 | 长时间稳定性测试 | 验证系统稳定性 | 1. 配置长时间测试 2. 执行24小时测试 3. 分析稳定性 |
无内存泄漏,性能稳定 |
5. 测试执行计划¶
5.1 执行时间安排¶
5.1.1 测试阶段¶
| 阶段 | 开始时间 | 结束时间 | 主要任务 | 参与人员 |
|---|---|---|---|---|
| 环境准备 | 第1天 | 第1天 | 搭建测试环境,准备测试数据 | 测试工程师、运维工程师 |
| 基准测试 | 第2天 | 第2天 | 执行基准性能测试 | 测试工程师 |
| 负载测试 | 第3天 | 第4天 | 执行各种负载测试 | 测试工程师 |
| 压力测试 | 第5天 | 第5天 | 执行压力测试 | 测试工程师 |
| 稳定性测试 | 第6天 | 第8天 | 执行长时间稳定性测试 | 测试工程师 |
| 结果分析 | 第9天 | 第9天 | 分析测试结果,生成报告 | 测试工程师、开发工程师 |
5.1.2 每日执行计划¶
| 时间 | 任务 | 负责人 | 备注 |
|---|---|---|---|
| 09:00-10:00 | 环境检查,测试准备 | 测试工程师 | 检查环境状态 |
| 10:00-12:00 | 执行性能测试 | 测试工程师 | 按计划执行测试 |
| 14:00-16:00 | 继续执行测试 | 测试工程师 | 监控测试过程 |
| 16:00-17:00 | 结果分析,报告整理 | 测试工程师 | 分析当日结果 |
5.2 资源分配¶
5.2.1 人力资源¶
| 角色 | 人数 | 职责 | 技能要求 |
|---|---|---|---|
| 测试经理 | 1人 | 测试计划制定,进度管理 | 性能测试经验,项目管理能力 |
| 测试工程师 | 2人 | 测试执行,结果分析 | JMeter使用,性能分析能力 |
| 开发工程师 | 1人 | 技术支持,问题分析 | 系统架构,性能优化经验 |
| 运维工程师 | 1人 | 环境维护,监控支持 | 系统运维,监控工具使用 |
5.2.2 硬件资源¶
| 资源类型 | 数量 | 配置 | 用途 |
|---|---|---|---|
| 测试服务器 | 1台 | 8核16GB | 部署Redmine系统 |
| 负载机 | 3台 | 4核8GB | 执行性能测试 |
| 监控服务器 | 1台 | 4核8GB | 监控系统性能 |
| 网络设备 | 1套 | 千兆交换机 | 网络连接 |
5.3 风险控制¶
5.3.1 技术风险¶
| 风险类型 | 风险描述 | 影响程度 | 应对措施 |
|---|---|---|---|
| 环境不稳定 | 测试环境不稳定导致测试失败 | 高 | 环境监控,备用环境 |
| 工具故障 | 测试工具故障影响测试执行 | 中 | 工具备份,多工具支持 |
| 数据问题 | 测试数据不完整或不准确 | 中 | 数据验证,数据备份 |
| 网络问题 | 网络不稳定影响测试结果 | 中 | 网络监控,网络优化 |
5.3.2 进度风险¶
| 风险类型 | 风险描述 | 影响程度 | 应对措施 |
|---|---|---|---|
| 时间延期 | 测试执行时间超过计划 | 中 | 合理规划,预留缓冲时间 |
| 资源不足 | 人力资源或硬件资源不足 | 中 | 资源调配,外部支持 |
| 需求变更 | 测试需求变更影响进度 | 高 | 需求确认,变更控制 |
| 质量问题 | 测试质量问题需要重新执行 | 中 | 质量检查,过程监控 |
6. 测试通过标准¶
6.1 性能指标通过标准¶
6.1.1 响应时间标准¶
| 指标类型 | 通过标准 | 说明 |
|---|---|---|
| 页面响应时间 | 95%的请求≤目标值 | 95%的页面请求响应时间不超过目标值 |
| 操作响应时间 | 90%的操作≤目标值 | 90%的操作响应时间不超过目标值 |
| 搜索响应时间 | 85%的搜索≤目标值 | 85%的搜索响应时间不超过目标值 |
6.1.2 吞吐量标准¶
| 指标类型 | 通过标准 | 说明 |
|---|---|---|
| 并发用户数 | 支持目标并发用户数 | 系统能够支持目标并发用户数 |
| 事务处理能力 | TPS≥目标值 | 每秒事务数达到目标值 |
| 请求处理能力 | RPS≥目标值 | 每秒请求数达到目标值 |
6.1.3 资源使用标准¶
| 指标类型 | 通过标准 | 说明 |
|---|---|---|
| CPU使用率 | ≤80% | CPU使用率不超过80% |
| 内存使用率 | ≤85% | 内存使用率不超过85% |
| 磁盘I/O | ≤80% | 磁盘I/O使用率不超过80% |
| 网络带宽 | ≤70% | 网络带宽使用率不超过70% |
6.2 稳定性标准¶
6.2.1 错误率标准¶
| 指标类型 | 通过标准 | 说明 |
|---|---|---|
| HTTP错误率 | ≤1% | HTTP错误率不超过1% |
| 业务错误率 | ≤0.5% | 业务错误率不超过0.5% |
| 系统崩溃 | 0次 | 测试期间系统不能崩溃 |
6.2.2 稳定性标准¶
| 指标类型 | 通过标准 | 说明 |
|---|---|---|
| 内存泄漏 | 无内存泄漏 | 长时间测试无内存泄漏 |
| 性能衰减 | ≤10% | 性能衰减不超过10% |
| 系统可用性 | ≥99.5% | 系统可用性不低于99.5% |
7. 测试报告¶
7.1 报告内容¶
7.1.1 执行摘要¶
- 测试目标达成情况
- 主要性能指标汇总
- 关键问题总结
- 优化建议概要
7.1.2 详细分析¶
- 测试场景详细分析
- 性能指标详细分析
- 问题详细分析
- 优化方案详细说明
7.1.3 图表展示¶
- 性能趋势图
- 资源使用图
- 对比分析图
- 瓶颈分析图
7.2 报告格式¶
7.2.1 报告结构¶
- 执行摘要
- 测试概述
- 测试环境
- 测试结果
- 问题分析
- 优化建议
- 附录
7.2.2 报告分发¶
| 接收人 | 报告类型 | 分发方式 | 频率 |
|---|---|---|---|
| 项目团队 | 完整报告 | 邮件 | 测试完成后 |
| 开发团队 | 技术报告 | 邮件 | 测试完成后 |
| 管理层 | 执行摘要 | 邮件 | 测试完成后 |
| 客户 | 客户报告 | 邮件 | 测试完成后 |
8. 后续计划¶
8.1 持续监控¶
8.1.1 监控计划¶
- 实时监控:建立实时性能监控
- 定期监控:定期性能评估
- 趋势分析:性能趋势分析
- 预警机制:性能预警机制
8.1.2 优化计划¶
- 短期优化:立即实施的优化措施
- 中期优化:3-6个月的优化计划
- 长期优化:6-12个月的优化规划
- 持续改进:持续的性能改进
8.2 经验总结¶
8.2.1 经验积累¶
- 测试方法:总结有效的测试方法
- 工具使用:总结工具使用经验
- 问题处理:总结问题处理经验
- 优化经验:总结性能优化经验
8.2.2 知识分享¶
- 团队分享:团队内部分享经验
- 文档整理:整理测试文档和最佳实践
- 培训计划:制定性能测试培训计划
- 工具推广:推广性能测试工具和方法