性能是用户眼中最重要的形象,因此大部分企业都想获得高性能的产品,以便获得用户认可,吸引更多用户使用,降低投产后的风险。通过性能测试,可以验证软件系统是否能够达到用户的性能要求,并发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。但在实际开发过程中,受各种条件的制约,性能测试往往不太受到重视,比如:项目开发周期太短,来不及执行性能测试就急于上线等。本文就从这个角度出发,聊聊在企业中,如何更好的开展性能测试工作。
首先必须做好前期的准备工作,凡事有备则无患,做好准备工作可以大幅提升测试效率和质量,性能测试的准备工作包括但不局限于:
1. 确定好被测模块:在有限的时间内,只能对一些核心、重点的功能执行测试,因此在准备阶段,需要确定好在有限的时间里,重点需要对哪些功能进行测试,这个过程可以和项目组其它人员,如:产品经理、开发等具体进行讨论。
2. 确定被测模块的性能要求:性能要求有哪些?具体的指标时多少?了解这些情况后,可以针对性的对我们关注的性能要求执行测试,同样可以提升测试效率
3. 熟悉业务和性能要求,设置合理的场景。好的场景可以尽量模拟出真实的业务环境,尽量保证测试结果的可靠性。
4. 其它的准备:测试用例的准备、测试数据和脚本的准备等
其次,要有一个规范和合理的测试流程。根据公司的实际情况,可以把测试分为两个阶段,第一个阶段是开发阶段的性能测试,第二个阶段用户环境的性能测试。一般来说开发环境的软、硬件配置更低,而用户环境的软硬件配置会更好。开发阶段更多的是关注软件本身的缺陷,因此可以针对性的开展:并发测试、稳定性测试、大数据容量测试等工作。用户环境测试更多关注系统上线后的整体性能表现。当然如果开发阶段可以保证配置和实际环境的配置一致,则可以将性能测试都在开发阶段完成,只需要在用户阶段进行性能验证即可。
第三,测试人员要选择一些合适的监控工具,一款好的监控工具,会帮助我们更快的定位问题,节省定位缺陷和解决缺陷的时间,从而提升发现问题定位问题效率。常见的监控工具如下:
1. linux常用监控工具:top、vmstat、free、df、sar、iostat、netstat等,一般是多个命令配合着用;
2. java应用常用监控工具:jvisualvm、jconsole、jmap、jstat、jstack。
最后,测试人员要养成做好总结、分析经验教训的习惯,可以给下次性能测试积累经验,并针对性的开展测试和快速的定位性能问题。