性能测试方案及性能测试流程
以下性能测试方案和流程是根据我以前公司的情况整理的,仅供参考。
当时我把此方案和流程发邮件给相关领导,就是想相关领导能够重视产品性能,安排各方人员配合做好性能测试,提高产品质量。具体内容如下:
目前项目研发时间里,没有预留做性能测试的时间和人力资源,后续建议考虑性能测试和安全测试的时间和人力资源。
性能测试不是靠一个人能够完成的,是需要各方面人员配合才能完成的。
还需要一些硬件和软件的支持。
目前根据公司的情况,想到以下性能测试方案,希望得到各方面人员的支持和配合,谢谢!
方案一:在测试环境仿真性能测试环境进行以下三大方面的检查。
1、SQL语句处理时间的检查。需要开发人员提供该项目使用到的SQL语句。
2、大数据量的查询时间检查。需要开发人员提供下批量往数据库插入订单的SQL语句,DBA人员执行SQL语句后,我们再模拟不同场景来查询数据检查其处理时间。
3、交易并发量的检查。需要开发人员去掉微信用户登录的控制,搭建好测试环境。
3.1 编写测试脚本的方案有两个:方案A是我们使用LR或Jmeter来录制,目前找到方法使用Jmeter来录制手机微信页面的脚本,优化脚本。
若有些项目方案A不可行,则采用方案B:测试人员编写测试脚本(包括访问地址、表单提交参数、提交按钮触发),需要开发人员协助调试,方案B编写一次,后续有类似项目,则我们都可以采用这种方法。
3.2 场景设置、场景监控。需要在服务器(压力机)上安装LoadRunner Agent,压力机与Controller所在机器要在同一个网段。被监控的windows机器需要开启Remote Procedure Call(RPC)和Remote Registry Service服务。若被监控的Linux机器,则要安装RPC服务。则需要运维人员帮助确认此服务是否开启。
4、若第3点不可行,则只能动员公司人员,模拟真实下订单场景来监控服务器CPU、处理时间、进程数的使用情况。
方案二:对生产环境进行性能监控与分析。
建议安排专门人员进行性能监控与分析,根据不同的项目需求来分析其性能需求,为后面相似项目的性能需求做准备,同时可以根据性能分析出来的结果,在需求分析和研发过程中把相关的性能瓶颈问题消灭掉。
1、 操作系统性能监控分析工具的选择
Linux下监控工具非常多,在实时监控的时候,用top、vmstat、iostat、sar监控即可。
如果是为了观察方便、直接,以及实现性能测试报告快速出图,可以用nmon、Spotlight on Linux进行监控。
2、 数据库系统性能监控工具选择
Oracle的性能监控工具也有很多,如Spotlight on Oracle、OEM、ADDM、Toad等。
MySQL的性能监控工具有很多,如MySQLMTOP、开源的RRDTool、Nagios、MRTG、Cacti等。
3、 中间件性能监控工具选择
Tomcat监控工具有很多,如Tomcat自带的status监控、Lambda Probe,其中Lambda Probe监控项稍微多一些。
4、 JVM性能监控工具选择
JConsole是JDK自带的图形化的性能监控工具,JConsole基于JMX(Java Management Extensions,即Java管理扩展),监控内容主要体现在:线程、CPU、类、VM信息这几个方面。
VisualVM能监控应用程序的JVM内存使用情况、线程使用情况、CPU使用情况等,还提供了分析功能,能够对CPU热点以及内存进行分析,从而帮助定位问题原因。VisualVM有一个很大的优点:不需要被监视的程序基于特殊的Agent运行,因此它对应用程序的实际性能影响很小,这使得它可以直接应用在生产环境中。
三、性能测试的测试流程图,希望项目相关人员了解性能测试流程,希望得到以下各方人员的配合,谢谢!