性能测试一般的压测流程:需求收集、测试准备、测试执行、结果分析与调优、测试报告与总结。
1.1 需求收集
性能测试需求一般在项目需求阶段就可以收集,测试人员进入项目应尽快开展此项活动。
1) 性能需求的来源:
需求文档、问卷调查、历史数据统计分析等。如果没有历史统计数据,则通过问卷调查、场景收集等方法向业务人员、BA、项目经理等收集性能场景。
2) 需求收集的内容:
A. 系统信息:线上环境硬件、参数配置、系统架构与部署方式、数据库产品、使用的中间件、协议、系统数据规模等
B. 业务信息:关键业务逻辑与处理流程、交易列表、交易量信息、业务分布规律等
C. 性能需求评估:在实施性能测试之前,我们需要对被测系统做相应的评估,主要目的是明确是否需要做性能测试。性能测试工程师根据需求调研所获取的信息进行分析,明确该测什么、性能指标是多少,测试通过or不通过的标准。
1.2 测试准备
方案阶段一般有如下活动:
1) 建立业务模型
A. 列出典型场景
B. 统计各场景高峰日交易数
C. 统计高峰日高峰时段的交易量占比排行
D. 生成业务模型
2) 建立测试模型
相对于业务模型来说中,测试模型是一种实现模型,在许多时候,它是根据业务模型映射到性能测试方案和工具的结果,一般方法有正向计算或反向控制。
A. 确定测试场景
B. 确定测试用例(用哪些脚本来覆盖测试场景)。
3) 设计性能测试方案
结合进度、风险和测试资源确定测试方案,需要考虑的资源包括:
A. 测试环境资源(包括环境架构配置、时间窗、测试数据)
B. 工具资源
性能测试工具:云性能测试服务 CPTS、Loadrunner
C. 监控工具:Nmon监控unix和linux操作系统CPU、IO和内存的使用情况。人力资源(包括负责性能测试的测试人员和相关人员包括不限:SA、实施人员、系统管理员、调优专家等)
4) 输出性能测试计划
一般小型项目的性能测试计划可以和功能测试计划合并:
若大型项目性能测试有专门的资源来执行,则建议写单独的性能测试计划。
在方案中需要描述:测试需求、启停准则、测试模型设计、测试策略、测试内容、测试环境与工具需求,以及各个阶段的输出文档。还需说明性能测试工作的时间计划安排、预期的风险与风险规避方法等。
1.3 测试执行 1) 环境搭建及数据准备
环境搭建完成后,要验证下性能测试的相关功能,保证功能可用。
正式测试之前还需要准备数据,数据分两种,一种是模拟历史数据用,这种数据一般只有数量级的要求,可以让开发导入历史数据或按照业务规则插入一些数据;还一种是业务执行需要的数据,这种数据要求可以实现正常的业务,比如测试待办审批操作,必须要有待审批的记录,这种数据可以找开发人员造,也可以自己弄LR脚本生成真实的业务数据。
2)测试执行
测试执行一般就是按照测试用例录制脚本、优化脚本、创建测试场景运行。
1.4 结果分析与调优
测试执行结束后,要分析测试结果,看是否达到预期的性能指标,如果不达标,则及时反馈性能问题,和开发人员一起定位性能瓶颈,开发人员做出优化后再进行测试,直到测试通过。
1.5 测试报告与总结
最终输出性能测试报告,报告要能展示出性能测试的最终成果,展示系统性能是否符合需求,是否有性能隐患。性能测试报告中需要阐明性能测试目标、性能测试环境、性能测试数据构造规则、性能测试策略、性能测试结果、性能测试调优说明、性能测试过程中遇到的问题和解决办法等。并对所有的重要测试资产进行归档保存,以便为下次性能测试提供数据。