公司的Web服务器搭建完成,上线在即。它能够承载多大的访问量,响应速度和容错能力等性能指标是否满足要求,所有这些都是我最想知道,也最为担心的。如何才能知晓这一切呢?
通过工具可以有效地测试Web服务器的运行状态和响应时间等性能指标,从而解决上述问题。下面以Web Application Stress Tool(简称WAST)为例,介绍如何进行Web压力测试。这是由微软的网站测试人员开发的专门用来进行实际网站压力测试的一套工具。
测试工具的设置
下载并安装WAST,过程极其简单。在对目标Web服务器进行压力测试之前,首先要对它进行一些必要的设置。
1.设置并行连接数
点击“Defaults→Settings”打开设置面板。在Concurrent Connections下进行并行连接设置。Stress Level(Threads)是最少线程,Stress Multiplier是最大线程。这里的线程是指定程序在后台用多少线程进行请求,也就是相当于模拟多少个客户机的连接,一般填写500~1000。这个线程数是根据本机的承受力来设置的,如果你对自己的机器配置有足够信心的话,那么可以设置得更高一些。
2.设置持续时间
在“Test Run Time”中用来指定一次压力测试需要持续的时间,分为天、小时、分、秒几个单位级别,比如我们设置为1个小时。
3.其余设置
用Rpquest Delay设置延迟时间,我们设置为100~500。用Suspend设置设定挂起时间,Warmup时间是初始化测试运行时间,Cooldown时间是指定结束阶段的测试时间。Bandwith指定带宽瓶颈,允许模拟从14.4 kbps的Modem连接到T1(1.5 Mbps)的Local Area Network(LAN)连接的网络带宽。Redirects设置重定向时间,Throughput用来设置用户、密码页面状态保存等是否启用,Name Resolution用来设置是否进行名称解析。所有以上的选项大家可以根据自己的需要进行设置。
压力测试的步骤
设置完成后就可以进行压力测试。测试的步骤如下:
第一步,点击工具栏上的“New Script”按钮,在打开的面板中点击“Nanual”按钮创建一个新的测试项目。在打开的窗口中对它进行设置,在主选项中的Server中填写要测试的服务器的IP地址。这里我们填写192.168.1.20。在下方选择测试的Web连接方式,这里的方式Verb选择get。Path选择要测试的Web页面路径,这里填写/Index.asp即动网的首页文件,WAST可以设置更多的Path。
第二步,在“Settings”功能设置中将Stress Level (Threads)线程数设置为1000。然后点工具中的灰色三角按钮即可进行测试。测试过程中我们可以从服务器的任务管理器中看到CPU使用率已经达到100%,损耗率达到最大。在CMD窗口中使用命令netstat -an,可以看到客户端的IP地址在服务器上的80端口进行了非常多的连接,而且Web网站已经打不开了,提示过多用户连接。
通过压力测试,管理员对Web服务器的抗压能力有了大概了解,可根据实际需要进行服务器硬件扩展,也为系统设置和软件选择等提供依据。Web服务器在正式发布前进行压力测试是非常必要的。