性能测试计划是性能测试的指导,是一系列测试活动的依据,在制定性能测试计划时,需要明确系统的上线时间点、当前项目的进度以及所处的阶段、可以供调配的硬件资源和性能测试人员。一个完整的性能测试计划一般包括如下几个部分:
(1)性能测试计划编写的目的:主要是作为整个性能测试过程的指导,让性能测试环境搭建、测试策略的选取、任务与进度事项跟踪、性能测试风险分析等事项有序地进行;同时也需要明确此次性能测试预期需要达到的标准,以及明确性能测试完成而退出测试所需的条件。
(2)明确各个阶段的具体执行时间点以及对应的责任人:
· 预计由谁何时开始性能需求分析,何时结束性能需求分析。
· 预计由谁何时开始性能测试方案的编写,何时结束性能测试方案的编写。
· 预计由谁何时开始性能测试案例的编写,何时结束性能测试案例的编写。
· 预计由谁何时开始搭建性能测试环境,何时结束性能测试环境的搭建。
· 预计由谁何时开始准备性能测试需要的数据,何时准备完毕。
· 预计由谁何时开始编写性能测试脚本,何时编写完毕。性能测试脚本的编写一般包含如下步骤:
按照性能测试场景,开始录制性能测试脚本或者直接编写性能测试脚本,此时可能用到的常见性能测试工具包括LoadRunner、BadBoy、JMeter、nGrinder等。
根据准备好的测试数据,对性能测试脚本进行参数化,添加集合点、事务分析点等。
对性能脚本进行试运行调试,确保不出现报错,并且可以覆盖测试场景中的所有操作。
· 预计由谁何时开始性能测试的执行,何时完成性能测试的执行,此阶段一般需要完成如下事项:
完成每一个性能测试场景和案例的执行,记录相关的性能测试结果,明确性能曲线的变化趋势,获取性能的拐点等。
根据性能测试的结果,评估性能数据是否可以满足预期,从性能测试结果数据中分析存在的性能问题。
针对性能问题,进行性能定位和优化,然后进行二次压测,直至性能数据可以满足预期,性能测试问题得到解决。
完成性能测试分析报告的编写。
(3)性能测试风险的分析和控制:评估可能存在的风险和不可控的因素,以及这些风险和因素对性能测试可能产生的影响,针对这些风险因素需要给出对应的短期和长期的解决方案。性能测试风险一般包括如下几点:
· 性能测试环境因素:无法预期完成性能测试环境的搭建,这中间的原因可能是硬件引起也可能是软件引起,硬件原因一般可能包括性能压测服务器无法按时到位、服务器硬件配置无法满足预期(一般要求性能压测服务器硬件配置等同于生产环境,服务器的节点数可以少于生产环境,但是需要保证每个应用服务至少部署了两台节点服务器)。软件原因可能包括性能测试环境软件配置无法和生产环境保持一致(一般要求性能压测环境软件配置,比如软件版本、数据库版本、驱动版本等要和生产环境完全保持一致)。
· 性能测试人员因素:性能测试人员无法按时到位参与项目的性能测试,如果出现这样的风险,肯定会导致性能测试无法按预期进行,需要立即向项目经理进行汇报,以确保可以协调到合适的人员,因为这是一个非常严重的风险。
· 性能测试结果无法达到预期:即系统的性能无法达到生产预期上线要求或者存在的性能问题无法解决。性能调优其实本身就是一个长期的不断优化的过程,此时可以看是否能够通过服务器的横向或者纵向扩容来解决,如果还是无法解决,那么也需要提前上报风险。