功能测试活动就好比做菜,怎样才能做出一道色香味具全的菜,不光要知道做菜的流程,技巧,最最重要的是你要热爱下厨,也就是要投入极大的热情。而下面要说的性能测试活动又似什么?美在哪里?每当拿起画笔作速描绘画时,都不由得让我想到性能中曲线的美,以及从这些曲线中折射的魅力。学习和关注性能测试时间最长,但接触性能测试工作并不多,小子斗胆在各位大侠前辈师兄面前班门弄斧,不正确之处还请提示,谢谢。
性能曲线美
在LR,JMeter或其它测试工具中得出的各种不同性能指标的图中,我们可以得出不同测试场景下的不同数据,从这些数据中可以判定系统是否达到预期标准,如果没有达到,系统瓶颈出现在什么地方,进而分析出优化的方案,这就是这些曲线的美之所在!
上图中的曲线(自下而上)是用LR模拟100个并发用户分别进行登录,发博文,退出一个博客系统的响应时间曲线图。
根据这些曲线,可以得出下面的分析:
1, 发布博文操作对应的曲线为最下面曲线,曲线平滑,变化不同,没有出现让人纠心的性能拐点,说明在100个并发用户同时发布时,响应时间在理想范围内,系统是能够经受考验,如果预期指标定义在这个范围,则系统可以接受。
2, 登录博客后台操作对应的曲线为中间两条曲线,相对于最下面那条曲线,这两条曲线出现了较大的波动,在性能平坦区之后有明显的性能拐点,响应时间加长
3, 退出博客系统操作对应的曲线为最上面一条,在右上角有明显的拐点,对照于中间两条以及预期的性能指标,出现了性能轻微下降区和性能急剧下降区,如果超出预期范围,根据这些数据,就要做些什么了。
注:性能平坦区,性能轻微下降区和性能急剧下降区是性能下降曲线分析中常遇到的,大家可以找下资料,这里不作过多解释。
根据这些曲线试想一下,如果在500个并发时要实现100个并发时的响应时间,我们可以怎么做?
一,服务器方向:
1, 采用集群策略,增加tomcat服务器数量,实现负载均衡。
2, 静态页面和动态页面分离处理,静态页面交给web server(如apache),动态页面交给application server(如tomcat,jboss)
3, 1,2两种方案一起使用。
4, 采用更强大的application server,升级tomcat服务器为jboss,weblogic或websphere;
二,硬件方向:
1, 增加内存
2, 加CUP
3, 增大硬盘容量
三,操作系统方向
1,采用Linux
四,数据库方向
1, 采用性能更大的database
2, 优化数据结构
3, 采用更有效率的数据库连接方式(数据连接池)