性能测试方案
(XX系统)
二○XX年X月XX日
修订状况
章节编号 | 章节名称 | 修订内容简述 | 修订日期 | 修订前 版本号 | 修改人 |
ALL |
| 新建 | yyyy-mm-dd |
| XXX |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
目录
1. 引言
1.1. 编写目的
1.2. 项目简介
1.3. 参考文档
2. 测试目的、范围与目标
2.1. 测试目的
2.2. 测试对象范围
2.3. 测试指标范围
2.4. 测试目标
3. 仿真测试资源
3.1. 系统生产环境物理架构
3.2. 系统性能测试环境物理架构
3.3. 仿真环境与生产环境资源对比
4. 测试启动/结束/暂停/再启动准则
4.1. 启动准则
4.2. 暂停/再启动准则
4.3. 结束准则
5. 测试准备
5.1. 测试环境安装
5.2. 测试工具
5.3. 测试脚本、数据及其预验证
6. 测试方法及案例设计
7. 测试输出
8. 测试进度计划
9. 测试实施风险
1. 引言
说明测试方案中所涉及内容的简单介绍,包含:编写目的,项目背景、参考文档,以及预期的读者等。
本文档描述××系统性能测试的范围、方法、资源、进度,该文档的目的主要有:
1. 明确测试目的范围。
2. 明确测试范围和目标。
3. 明确测试环境需求,包括:测试需要的软、硬件环境以及测试人力需求。
4. 确定测试方案,测试的方法和步骤。
5. 确定测试需要输出的结果和结果表现形式。
6. 分析测试的风险,寻找规避办法。
简要描述与测试项目相关的一些背景资料,如被测系统简介,项目上线计划等。
说明文档编写过程参考引用的资料信息。
根据项目总体计划明确项目测试目的。常见的测试目的如下(依据项目的实际情况修改。
本次性能测试的主要目的在于:
²测试已完成系统的综合性能表现,检验交易或系统的处理能力是否满足系统运行的性能要求;
²发现交易中存在的性能瓶颈,并对性能瓶颈进行修改;
²模拟发生概率较高的单点故障,对系统得可靠性进行验证;
²验证系统的生产环境运行参数设置是否合理,或确定该参数;
²获得不同备选方案的性能表现,为方案选择提供性能数据支持。
说明本项目需要进行测试的待测系统功能范围,列出被测对象的测试重要性及优先级等,提供一份简要列表。对于交易类功能要细化到每一个交易码;对于页面类功能要细化到每一个发起页面。下面表格供参考,非强制使用。
如果测试目的为方案验证,需要文字列出需要验证的方案项。
参加性能测试的交易(页面)列表 | ||||
序号 | 交易代码 | 交易名称 | 优先级 | 备注 |
1 | 交易代码1 | 交易名称1 |
|
|
2 | 页面代码 | 交易名称2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
明确列出说明本次测试需要关注的测试指标的定义及范围,不需要关注的测试指标也应列出。下面的内容供参考。
本次性能测试需要获得的性能指标如下所列:
²交易的响应能力:即在单交易负载和模拟生产交易情况的混合场景负载压力情况下,系统的响应时间。
²每秒处理事务数:即应用系统在单位时间内完成的交易量(TPS)。
²批处理的运行时间。
²系统可支持的并发用户数量。
本次性能测试的限制性指标为:
²系统资源使用情况:在正常压力下,应用服务器和数据库服务器的CPU、Memory占用率应分别低于70%、80%,数据库存储空间和文件系统空间占用率应低于70%。
²交易的成功率:系统运行在当前(或规划)的负载120%以上时的稳定性或可靠性数据。要求为测试交易持续运行8小时以上,交易成功率不低于99.5%。
本次性能测试不需要关注的指标:
²业务流程/路径覆盖率。
²业务数据的完整、正确性。
²其他诸如系统易用性、可管理性等属于专项测试的内容。]
明确本次测试各功能项的测试指标需要达到的测试目标,该目标须由项目组提出或最终确认。
该测试目标可能涉及到的具体指标值有:
² 针对不同类型交易的单交易事务平均响应时间
² 针对不同类型交易的单交易事务TPS值
² 在负载情况下的单交易事务平均响应时间
² 在负载情况下的单交易事务TPS值
² 在负载情况下的系统综合TPS值
可以列表方式提出(下表供参考,非强制使用),也可以以文字方式说明,要求有明确的目标数值
序号 | 交易码 | 日交易量分解 | 占比 | 可接受TPS目标值 | 测试TPS目标值 | 备注 |
1 | 交易码1 |
|
|
|
| 维护交易 |
2 | 交易码2 |
|
|
|
| 查询交易 |
|
|
|
|
|
|
|
合计 |
|
|
|
|
|
说明本项目生产环境的物理架构,可以以物理架构图的方式。
说明本项目性能测试环境的物理架构,可以以物理架构图的方式。
说明本项目测试环境与生产环境的差异,确定性能测试环境的软硬件资源,包括待测系统各组成部分的配置。下表供参考,非强制使用。
服务器 | 性能测试环境(规划) | 生产环境(规划) | ||
硬件配置 | 软件配置及IP | 硬件配置 | 软件配置 | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
描述开始执行测试的时机,下面准则供参考。
²测试实施方案评审通过。
²测试环境准备完毕,包括:
1. 数据库安装并调试成功,并经过相应优化,初始数据量满足测试要求。
2. 应用服务器安装成功,待测试版本已正确部署。
3. 测试客户端机器到位,系统软件安装完毕。
4. 网络配置正确,连接通畅,可以满足压力测试需求。
5. 测试所需的存储到位。
6. 其他环境资源就绪。
²待测交易的测试数据和测试脚本准备完毕。
²待测交易(流程)通过功能测试,版本稳定。
描述在什么情况下暂停/恢复全部或部分测试工作,下面准则供参考。
²测试中发现问题,需要项目组修改代码或更换版本;
²测试中发现服务规划及部署问题,需要重新调整部署方案;
²需要调整测试环境资源,如加减CPU数目,增加存储等等。
²测试环境受到干扰,比如服务器被临时征用,或服务器的其它使用会对测试结果造成干扰。
描述测试结束的条件,有正常退出,也有非正常或意外的退出,下面准则供参考。
²完成全部性能测试内容并提交测试报告;
²对验证测试的内容从测试外渠道获得权威的结论。
说明本次测试的测试环境安装情况。
说明本次测试的测试脚本、测试数据以及混合场景的交易配比情况等。
说明本次测试的测试方法(内容)及测试案例、测试场景设计。下面章节供参考。
在测试环境经过确认,脚本预验证之后对本次测试涉及的全部联机交易做基准测试。目的是验证测试脚本及后台环境、初步检查交易本身是否存在性能缺陷。
测试方法:
使用xx测试工具向xx服务器发送交易请求,接收并分析返回结果。拟采用xx负载执行,取交易的平均响应时间作为衡量指标,并计算吞吐量
对本次测试涉及的全部联机交易完成基准测试后,分别执行单交易负载测试。目的是获得交易本身的性能表现,诊断交易是否存在性能缺陷。
测试方法:
使用xx测试工具向xx服务器发送交易请求,接收并分析返回结果。拟采用xx的负载执行,取交易的平均响应时间作为衡量指标,并计算吞吐量
按照规划生产环境交易比例设置测试场景,在xx用户总并发的情况下测试业务的平均交易响应时间、吞吐下指标,监测应用服务器、数据库服务器的资源使用情况、交易正确率等。
测试方法:
在测试环境下,按照xx测试场景执行测试,在xx总并发用户数量的情况下,获得在不同测试环境参数(包括数据库配置参数,应用系统配置参数)下,系统性能表现的变化曲线。
在测试环境下,长时间连续执行测试脚本,监测系统在连续运行情况下,系统资源的使用情况和处理性能的变化。
测试方法:
在测试环境下,按照xx的测试场景执行测试,在xx个总并发用户数量的情况下,连续执行测试脚本xx小时,记录系统的性能表现和资源开销。
说明在测试完成后需要输出的阶段性成果,作为检验测试的衡量标准。
当测试完成以后,需提交的主要文档包括,但不仅限于:
²《xx项目性能测试实施方案》
²《xx性能测试脚本》
²《xx性能测试场景》
²《xx性能测试场景结果》
²《xx性能测试记录及问题跟踪表》
²《xx项目性能测试报告》
在测试工作量估算数据的基础上,考虑现有的资源情况,对资源进行具体安排,根据项目整体进度计划,列出进度表,即是谁在什么时间内完成什么任务。下表供参考,非强制使用。
序号 | 名称 | 责任人 | 工期 | 开始时间 | 完成时间 |
1 | XX项目性能测试 |
| X工作日 | 2008-1-1 | 2008-1-1 |
1.1 | 测试准备 |
| x工作日 | 2008-1-1 | 2008-1-1 |
1.1.1 | 测试实施方案制定 | 张三 | x 工作日 | 2008-1-1 | 2008-1-1 |
1.1.2 | 测试主机、数据库环境就绪 | 李四 | x 工作日 | 2008-1-1 | 2008-1-1 |
1.1.3 | 性能测试版本发布 |
| x 工作日 | 2008-1-1 | 2008-1-1 |
1.1.4 | 性能测试业务数据就绪 |
| x 工作日 | 2008-1-1 | 2008-1-1 |
1.1.5 | 服务部署就绪 |
| x 工作日 | 2008-1-1 | 2008-1-1 |
1.1.6 | 测试脚本编制、参数就绪 |
| x 工作日 | 2008-1-1 | 2008-1-1 |
1.2 | 基准、单交易负载测试 |
| x工作日 | 2008-1-1 | 2008-1-1 |
1.2.1 | 单交易基准测试 |
| x 工作日 | 2008-1-1 | 2008-1-1 |
1.2.4 | 单交易负载测试 |
| x 工作日 | 2008-1-1 | 2008-1-1 |
1.3 | 混合场景测试 |
| x工作日 | 2008-1-1 | 2008-1-1 |
1.3.1 | 混合场景测试第1轮 |
| x 工作日 | 2008-1-1 | 2008-1-1 |
1.3.2 | 混合场景测试第2轮 |
| x 工作日 | 2008-1-1 | 2008-1-1 |
1.4 | 稳定性测试 |
| x工作日 | 2008-1-1 | 2008-1-1 |
1.5 | 测试总结 |
| x 工作日 | 2008-1-1 | 2008-1-1 |
风险管理是对影响项目测试的各种可能发生的风险进行估计,以及对风险的发生几率和严重程度进行估计,并按照估计结果对风险进行排序。以下的表格中已经列出了一些常见的风险和应对措施,可以根据项目的特性,对本表的内容进行增加、删除、修改和重新排序,并对预防措施进行细化。规避风险的应对措施必须在本部分中有所体现。下表供参考。
风险描述 | 风险发生的可能性 | 风险对项目的影响 | 责任人 | 规避方法 |
测试环境与运行环境差距较大,通过测试得到的运行参数偏差。在试运行阶段需要重新进行参数验证。 | 中 | 低 |
| Xxxx |
测试数据量和数据库中预埋数据量较小,通过测试时间推算的批量处理交易的运行时间满足要求,生产环境下数据不能满足。 | 中 | 高 |
| Xxxx |
由于发现较严重缺陷引发较长时间的程序修改,或因环境准备、数据等原因造成测试进度延迟。 | 高 | 中 |
| Xxxx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|