流程

- 业务学习: 查看文档,手工操作系统来了解系统功能。
- 需求分析: 分析系统非功能需求,圈定性能测试的范围, 了解系统性能指标
- 工作评估:工作量分解, 苹果工作量,计划资源投入(即需要多少人力,多少工作日来完成性能测试工作)
- 设计模型:圈定性能测试方位后,把业务模型映射成测试模型
什么是测试模型呢?比如一个支付系统需要与银行的系统要进行交互(充值或者转出),由于银行不能够听支持,我们会开发程序去替代银行系统功能(这就是挡板程序,mock程序),保证此功能的性能测试能够开展:这个过程就是设计测试模型
- 计划编写: 计划测试工作,在文档中明确列出测试范围,人力投入,持续时间,工作内容,风险评估
、风险应对策略等。 - 脚本开发: 录制或者编写性能测试脚本(现在很多被测试系统都无法录制脚本的,我们需要手工开发脚本),开发测试挡板程序,开发测试程序等
- 测试环境准备:性能测试环境准备包括服务器和负载机俩部分
服务器: 被测系统的运行平台(包括硬件与软件,比如应用服务器需要8core,32G内存,中间件是Jboss7等)
负载机: 是我们用来产生负载的机器,用来安装负载工具,运行测试脚本。 - 测试数据准备:根据数据模型来准备被测系统的主数据和业务数据(主数据是保证业务能够运行畅通的基础,比如菜单、用户等数据;业务数据是运行业务产生的数据,比如订单;订单出库需要库存数据,库存数据也是业务数据,我们知道数据量变化会引起性能的变化,在测试的时候后往往要准备一些存量/历史业务数据,这些数据需要考虑数量与分布)。
- 测试执行:测试执行是性能测试成败关键,同样脚本不同执行人员得出的结果可能差异较大,这些差异主要体现在场景设计和测试执行上。
- 缺陷管理: 对性能测试过程中发现的缺陷进行管理
- 性能分析: 对性能测试过程中暴露出来的问题进行分析,找出原因
- 性能调优: 性能测试工程师与开发人员一起来解决性能问题
- 测试报告: 测试工作的重要交付件,对测试结果进行报告,主要包括常见的性能指标说明(TPS、RT、CPU using......),发现的问题等
性能测试主要的交付件:
- 测试计划
- 测试脚本
- 测试程序
- 测试报告或者阶段性测试报告
如果性能测试执行过程比较长,换句话说性能测试发现的问题比较多,经过了多轮的性能调优,需要执行多次回归测试,那么在这个过程中需要提交阶段性测试报告。
- 评审: 对性能报告中的内容进行评审,确认问题、评估上线风险。有些系统虽然测试结果不理想,但基于成本及实践的考虑也会在评审会议中通过从而上线。
网友评论