性能测试方案书
1 简介
1.1目的
编写本文档的目的在于描述测试项目的测试范围,定义测试条件和目标,测试策略和要求,分析可能的风险,提供相应的规避措施或应急对策,并确定测试整体进度的计划和人力资源安排等。 测试目的在于通过测试交易系统业务功能及流程实现的正确性、可靠性、易用性,确保系统符合业务需求规格说明书的要求,且系统性能指标和数据库服务器管理方案满足应用要求。通过测试找出系统的性能瓶颈及缺陷,为系统调优提供依据;确定系统能处理的最大业务量,能够支持的最多用户数、并发数。1.2背景
1.3测试范围
根据性能需求制定性能需求指标,利用性能测试工具LoadRunner录制测试脚本、设计测试场景,对系统进行性能测试,通过调优,使系统满足性能指标,并找出系统的最优配置、性能瓶颈、可扩展性、稳定性等。需要进行的测试包括: 1)基准测试 无负载情况下,对所有功能点分别进行一段时间的持续运行,取得各功能点平均响应时间作为分析衡量指标,用于初步诊断系统是否存在性能瓶颈。2)并发测试
根据业务性能需求,模拟一定时间之内设计并发用户同时向系统发出请求,检测出系统的响应能力,包括响应时间以及CPU/内存等的使用情况,以验证系统对并发请求时的支持能力,并获取该系统的最大并发请求数量。
3)系统容量和扩展性测试
驱动当前系统以达到资源的最大利用率,并找出在此利用率下系统的最大处理能力,同时在测试的过程中找出系统的最优配置,找出系统的可扩展能力,可容纳用户数量与集群的数量的实际关系。
4)稳定性测试
通过高负载和低负载的转换,以验证系统的正常情况下以及峰值情况下系统的稳定性;以及找出增加或者减少负载的过程中由于突然的占用或者释放系统资源而引起的问题。
5)疲劳测试
疲劳测试目的是验证长时间运行对系统性能的影响。模拟一定数量的用户发起操作请求,对系统形成一定的压力并长时间运行,验证系统在长时间运行时,用户对系统访问操作的成功率是否降低,找出系统潜在的内存泄漏等问题。
1.4参考文档
2 测试环境
2.1环境概述
2.2软硬件环境
设备 | 硬件配置 | 软件配置 | 服务器IP地址 |
---|---|---|---|
应用服务器 | IBM pSeries 52A(4×1.65 GHZ,8G内存,146GB×8, 2×10/100/1000M以太网卡 ) | Websphere 6.1 | 11.9.13.3 |
数据库服务器 | IBM pSeries 52A(4×1.65 GHZ,8G内存,146GB×8, 2×10/100/1000M以太网卡 ) | Oracle 10g | 11.9.13.3 |
WEB服务器 | IBM X3650(2CPU、4G内存,4×10/100/1000M以太网卡) | Apache | 11.9.13.1 |
客户端 |
设备 | 硬件配置 | 软件配置 | 服务器IP地址 |
---|---|---|---|
应用服务器 | IBM pSeries 52A(4×1.65 GHZ,8G内存,146GB×8, 2×10/100/1000M以太网卡 ) | Websphere 6.1 | 11.9.13.3 |
数据库服务器 | IBM pSeries 52A(4×1.65 GHZ,8G内存,146GB×8, 2×10/100/1000M以太网卡 ) | Oracle 10g | 11.9.13.3 |
WEB服务器 | IBM X3650(2CPU、4G内存,4×10/100/1000M以太网卡) | Apache | 11.9.13.1 |
客户端 |
2.3测试环境拓扑图
2.4 测试工具
工具 | 版本 | 功能说明 |
---|---|---|
LoadRunner | 11.1 | 性能测试工具 |
SiteScope | 服务器资源使用监控工具 | |
Bugfree | 8.3 | 缺陷管理工具 |
3. 测试需求
3.1 性能测试需求
业务指标 | 指标描述 | 指标值 |
---|---|---|
响应时间 | 用户操作时系统的响应时间 | 5 |
并发数量 | 同时访问系统的最大并发用户数量 | 50 |
访问高峰数量 | 同时访问系统的用户数量 | |
业务量均值 | 非实时批量数据量(笔) | |
业务量峰值 | 非实时批量数据量(笔) | |
访问高峰时间 | 访问系统频率最高的时间段 |
3.2测试内容
序号 | 功能模块 | 功能描述 |
---|---|---|
1 | 登录及首页载入 | |
2 | 账户明细查询 | |
3 | 行内同名转账 | |
4 | 行内转账 | |
5 | 跨行转账 | |
6 | 批量转账 | |
7 | 网上转账结果查询 | |
8 | 网上转账结果查询—excel下载 | |
9 | 信用卡历史账单查询 | |
10 | 信用卡手工还款 | |
11 | 安全中心资料工具下载 |
4. 测试约束
4.1测试启动条件
测试环境已经准备好;
系统的功能测试已经完成,并且功能测试报告通过了内部评审;
进行了冒烟测试,系统的性能测试是可测的;
不存在影响系统流程的缺陷。
4.2测试结束条件
根据性能测试计划执行所有测试用例完成,测试出系统基本性能参数,并分析系统性能瓶颈,系统调优后,达到需求定义的性能指标;
完成性能分析工作,性能指标验证结束;
性能测试报告通过内部评审。
5. 测试方法
5.1 测试方法描述
根据软件需求规格说明书中的需求,使用性能测试工具,对系统施加压力,测试系统在压力下的工作状况,测试系统性能是否满足软件需求规格说明书中的指标。
5.1.1基准测试
5.1.1.1测试方法
对个人网银系统的所列功能点进行基准测试,主要用于与响应时间性能指标的对比,以了解系统的整体性能状况。
5.1.1.2测试场景
对系统所有功能点(功能测试中的所有功能点),使用单个用户通过执行相应业务操作的测试脚本发起各项操作请求,在执行1小时后,初步诊断系统是否存在性能瓶颈,取响应时间的平均值作为测试的基准值。
编号 | 用例需求点 | 用户数量 | 迭代次数 | 迭代间隔 | 执行时间(分钟) | Think Time | 负载生成器数量 |
---|---|---|---|---|---|---|---|
1 | 登录及首页载入 | 1 | - | 0 | 60 | 0 | 1 |
2 | 账户明细查询 | 1 | - | 0 | 60 | 0 | 1 |
3 | 行内同名转账 | 1 | - | 0 | 60 | 0 | 1 |
4 | 行内转账 | 1 | - | 0 | 60 | 0 | 1 |
5 | 跨行转账 | 1 | - | 0 | 60 | 0 | 1 |
6 | 批量转账 | 1 | - | 0 | 60 | 0 | 1 |
7 | 网上转账结果查询 | 1 | - | 0 | 60 | 0 | 1 |
8 | 网上转账结果查询—excel下载 | 1 | - | 0 | 60 | 0 | 1 |
9 | 信用卡历史账单查询 | 1 | - | 0 | 60 | 0 | 1 |
10 | 信用卡手工还款 | 1 | - | 0 | 60 | 0 | 1 |
11 | 安全中心资料工具下载 | 1 | - | 0 | 60 | 0 | 1 |
5.1.2并发测试
并发测试的目的是为了验证系统在同一秒级50个用户的并发下,个人数据查询以及个人转账处理对系统资源的利用,以及所能达到的响应时间。
5.1.2.1测试方法
模拟服务器与终端用户之间的网络连接,对Loadrunner的虚拟用户使用512K的带宽限制设置,分别模拟50个用户同时(同一秒级)向同一功能点(单一业务)或多个功能点发出操作请求,测试系统的响应能力,包括响应时间以及CPU、内存、磁盘、网络等资源的使用状况,以验证系统对50个用户并发请求时的支持能力。
1)并发用户数量的设计
a.极限法:根据性能需求,假设目前系统要求最大的并发用户数为50个。选择不同的访问时间段,给系统50的查询处理并发量,并持续10分钟,在此过程中收集系统资源利用情况和响应时间(TPS,CPU%,Response Time)。对于同一个场景,可以使用10,20,30,40不同的用户并发量(步进为10)。
b.用户趋势分析:按照今后N年的用户数量增长和业务增长(30%)分析,N年后要达到的用户数量与业务量的并发要求。假设N年后,最大并发用户数量是65,同时访问系统的最大用户数为1040。选择不同的访问时间段,以步进为10逐步增加并发交易数量,直至到达最大并发用户数量65,在此过程中收集系统资源利用情况和响应时间(TPS,CPU%,Response Time)。
5.1.2.2测试场景
对本次性能测试所确定的典型业务功能点,通过Loadrunner模拟50个用户,同时(同一秒级)访问同一个典型业务功能(单一业务)或多个功能点(混合业务),持续10分钟,取响应时间的平均值,同时监测测试系统的各服务器资源使用情况。
单一并发测试场景
编号 | 用例需求点 | 用户数量 | 迭代次数 | 迭代间隔 | 执行时间(分钟) | Ramp Up | 持续时间 | Ramp Down | Think Time | 负载生成器数量 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 登录及首页载入 | 50 | - | 0 | 10 | - | 10 | - | - | 1 |
2 | 账户明细查询 | 50 | - | 0 | 10 | - | 10 | - | - | 1 |
3 | 行内同名转账 | 50 | - | 0 | 10 | - | 10 | - | - | 1 |
4 | 行内转账 | 50 | - | 0 | 10 | - | 10 | - | - | 1 |
5 | 跨行转账 | 50 | - | 0 | 10 | - | 10 | - | - | 1 |
6 | 批量转账 | 50 | - | 0 | 10 | - | 10 | - | - | 1 |
7 | 网上转账结果查询 | 50 | - | 0 | 10 | - | 10 | - | - | 1 |
8 | 网上转账结果查询—excel下载 | 50 | - | 0 | 10 | - | 10 | - | - | 1 |
9 | 信用卡历史账单查询 | 50 | - | 0 | 10 | - | 10 | - | - | 1 |
10 | 信用卡手工还款 | 50 | - | 0 | 10 | - | 10 | - | - | 1 |
11 | 安全中心资料工具下载 | 50 | - | 0 | 10 | - | 10 | - | - | 1 |
混合并发测试场景
编号 | 用例需求点 | 用户数量 | 迭代次数 | 迭代间隔 | 执行时间(分钟) | Ramp Up | 持续时间 | Ramp Down | Think Time | 负载生成器数量 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 登录及首页载入 | 10 | - | 0 | 10 | - | 10 | - | - | 1 |
2 | 账户明细查询 | 10 | - | 0 | 10 | - | 10 | - | - | 1 |
3 | 行内同名转账 | 10 | - | 0 | 10 | - | 10 | - | - | 1 |
7 | 网上转账结果查询 | 10 | - | 0 | 10 | - | 10 | - | - | 1 |
8 | 网上转账结果查询—excel下载 | 10 | - | 0 | 10 | - | 10 | - | - | 1 |
11 | 安全中心资料工具下载 | 10 | - | 0 | 10 | - | 10 | - | - | 1 |
5.1.3破坏性测试
疲劳测试主要测试系统在长时间运行后的处理能力,确定系统是否能够继续安全有效的正常提供服务。
5.1.3.1测试方法
通过持续不断的调用测试脚本,模拟一定数量的用户发起操作请求,对系统形成一定的压力并长时间运行,通过长时间持续的压力,验证系统在长时间运行后,用户对系统访问操作的成功率是否降低,以找出系统潜在的内存泄漏等问题。
本次性能疲劳测试计划使用800个在线用户,按照业务人员提供的典型业务功能比例进行分配,执行7×24小时。
5.1.3.2测试场景
编号 | 场景名称 | 在线总用户数 | 执行时间 | 成功率 | 完成业务数量 |
---|---|---|---|---|---|
1 | 疲劳测试 | 800个用户 | 7×24小时 |
6. 测试时间表
6.1测试轮次表
轮次 | 开始时间 | 结束时间 | ||
性能测试 | 第一轮 | |||
第二轮 | ||||
第三轮 |
6.2测试进度表
编号 | 任务 | 工作量(人月) | 任务启动条件 | 计划启动时间(T) | 计划结束时间(T+D) |
---|---|---|---|---|---|
1 | 测试环境准备 | 1 | 完成测试计划,测试环境、测试数据准备完毕 | ||
2 | 测试案例设计 | 1 | 具有软件需求说明书 | ||
2 | 脚本开发 | 1 | 功能稳定,性能测试环境准备完毕 | ||
3 | 场景设计 | 1 | 测试脚本开发完毕 | ||
4 | 测试执行 | 1 | 测试环境搭建完毕、测试脚本开发完毕、场景设计完毕 | ||
5 | 测试总结 | 1 | 性能测试执行完毕 |
7. 测试组织架构
角色 | 职能 | 姓名 | 工作内容 |
---|---|---|---|
测试经理> | 项目管理 | 编写测试方案 测试质量控制 出具测试报告 | |
测试工程师 | 测试执行 | 测试脚本开发 测试执行测试 测试结果分析 |
8. 测试风险
风险编号 | 风险描述 | 风险发生可能性(高、中、低) | 风险的影响程度(高、中、低) | 责任人 | 规避方法 |
---|---|---|---|---|---|
9. 输入输出文档
文档名称 | 文档类型 | 负责人 | 交付日期 | 说明 |
---|---|---|---|---|
软件需求说明书 | 输入 | |||
性能测试方案 | 输出 | |||
性能测试报告 | 输出 |