5.1.16 尖峰冲击测试(Spike Testing)
与可靠性测试类似,尖峰冲击测试这种方法也是从其他行业借鉴而来。在电力工业,有一种冲击测试,用来验证设备在刚刚接通电源时能否经受住涌流的破坏。所谓涌流,通俗地说,就是电源接通瞬间,电流突然变大的现象。涌流过后,电流逐渐恢复到正常的水平。
软件行业的冲击测试,或者说本书称之的尖峰冲击测试,就是为了验证网站在用户突然极具增加的情况下能够正常工作。我们知道,在网站的运行过程中,会经常出现各种各样用户数量的突然增加:
网站开幕时可能导致用户急剧增加,超过预期。
网站公布与用户极为相关的信息,比如高考成绩、录取分数等。
网站投放一些商业促销广告和促销活动,比如季节性降价,春节前大促销。
网站举办酝酿已久的明星访谈、在线销售演出、比赛门票等吸引眼球的活动。
以上这些情况产生的在线用户数量突然增加都会对网站性能产生巨大影响,读者一定记得通过网络购买奥运会门票时,由于用户非常踊跃,导致售票网站无法打开的案例。
在前文我们介绍过负载测试,但实际情况所产生的负载不会老老实实地遵循最大负载的限制,很可能在短时间内就会超过,这时系统并不一定会出现问题。尖峰冲击测试就是为了验证此时网站的应付能力。
如图5-9所示为网站在某一时刻,在线用户突然增大,形成一个尖峰的情况。这也正是尖峰冲击测试中Spike的由来,Spike在英文中是钉子的意思。
【尖峰冲击测试的实施】
尖峰冲击测试一般也是采用工具软件进行自动测试的。在Load Runner中,可以修改之前性能测试的脚本,令某一个时刻用户数突然增大,就可以达到测试的目的。
图5-9 网站某时刻在线用户数突然增大形成尖峰
5.1.17 失败恢复测试(FailOver Testing)
失败恢复测试(Failover Testing)方法对于大中型的Web应用是很重要的,它针对有冗余备份(Redundant Backup)、负载均衡(Load Balance)的系统。这种测试方法用于验证某部分Web应用发生故障时,整个网站是否能够继续让用户使用的能力。
1.用户访问网站可能出现的问题
我们知道,Web应用是存放在服务器的硬盘上供用户访问的,而服务器一般来说都位于IDC(互联网数据中心,Internet Data Center)机房的机架上。用户访问一个Web应用的过程如图5-10所示,为简单起见,这里只列出大的部分。
图5-10 用户访问网站过程的示意图
从图5-10中可以看出,如果一个用户无法访问某个网站,那么可能是:
用户电脑出现了问题。解决方法:维修用户电脑。
网络线路出现了问题。解决办法:更换网线,修正交换机、路由器等设置。
网站服务器出现了问题。解决办法需要在下文进一步讨论。