Jmeter测试过程经验总结
采用Jmete作为测试工具。针压力进行测试。看能够支持多少人同时在线考试。
IE采用HttpWatch工具,当然也可以使用WireShark进行抓包分析。
Firefox采用强大的firebug,进行查看详细信息。
Chrome采用开发者工具进行分析。
非常清晰地统计每次请求响应了多少数据量,然后进行相应处理。比如使用gzip。
中间件是Tomcat,采用probe进行监控。关注JVM内存分配大小情况,线程池的大小,session情况等。根据负载情况调整,JVM内存分配情况,栈深度,垃圾收集器类型等。不同位的操作系统内存大小有相应的适配。
分析代码情况。代码实现算法不规范。比如循环去数据库获取数据,即使数据库有缓存,但是获取数据库连接池仍然需要开销。比如大量使用String情况也需要杜绝,因为string作为常量存入JVM运行时数据域的方法区,而方法区就是我们常说的永久代,而永久代很难有GC。一些无用的String就会占用很多内存开销。
根据实际情况,调整数据库连接池大小等参数。
JVM,采用JDK自带的jvisualvm工具监控,内存,线程栈情况。结合一些jmap,jstat,jstack命令。
利用MONyog监控MySQL,可以很直观看见SQL语句执行计划,然后根据执行计划,修改和增加索引,以及尽可能去掉连表查询,尤其不能有连表带In的子查询,这应该是杜绝的。
服务器采用64位window7,然后进入资源监视器功能。观察和分析是否是硬件带来的瓶颈。所以需要理解CPU,内存,磁盘,网络。
上述就是在一个项目测试过程中需要分析和做的事情,但是实际过程远比这复杂详细。
这里记录大致过程。提供一些思路。各个环节需要什么工具去监测,又需要我们具备怎样的知识。
尽可能去理解当一个请求来了然后到响应的全过程。各个环节是如何联动的,相互之间的关系和影响。
