图解用WAS对Web服务器进行压力测试

时间:2023-02-13 04:52:59
你的 Web 服务器能够支持多少个并发用户的访问呢?你遇到过服务器遭受过 DDOS 的攻击而瘫痪吗?在这里给大家介绍微软网站测试人员开发的著名网站压力测试软件, Microsoft 的Web Application Stress Tool(WAS,Web应用负载测试工具), 而且还是免费的哦。


WAS 是一款网站性能测试评估软件。它通过模拟大量并发用户同时访问服务器,以获取服务器的承受能力。像这种软件是把“双刃剑”,就看你用在哪一方面啦。如果没用好就会给你的服务器造成一定的损失,用好了可以及时的发现你的服务器能承受多大压力负载。以便及时的采取相应的措施防范。


要对网站进行负载测试首先需要创建 WAS 脚本来模拟用户访问等活动。
创建脚本的方法:
通过记录浏览器的活动;
通过导入 IIS 日志;
通过把 WAS 指向 Web 网站的内容;
或者手工制作。
这里我用是通过记录浏览器事件生成的脚本的一部分,

一:测试前的准备
1.   在测试前清空IE 浏览器其它网站的缓存和Cookies 等临时文件。

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(18.27 KB)



二:测试脚本制作
1.   打开WAS, 点击Record

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(19.9 KB)



2. 勾选要记录的活动

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(8.3 KB)



3. 点击Finish

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(8.17 KB)



4. 这时自动弹出一个浏览器新窗口,即开始记录你的浏览的内容。这时开始访问你要测试的网页。

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(10.51 KB)



5. 在你访问你的服务器时,WAS 都记录了这些活动,访问完成后点击Stop Recording 结束记录。

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(21.24 KB)



6. 这时在脚本页可以看到收集到的脚本,在Server 栏输入服务器的 IP 地址。

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(19.64 KB)



7. 删除延迟小的元素

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(29.13 KB)



8. 可以用Ctrl 键同时选中多个,然后点击工具栏的删除按钮删除

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(10.08 KB)


9. 点击Settings ,在这里可以设置例如发起的连接数,热身时间,带宽限制,以及测试要运行多长时间等参数。

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(23.57 KB)


Stress LevelStress multiplier这二个项决定了访问服务器的并发连接的数量。其中Level是客户端所产生的线程数,一个线程可以产生多个Socket并发请求,因此两者的数值相乘所获得的数值才是客户端同时发起连接并发数微软建议这这个Stress Level值不要超过100。如果要模拟的并发连接数量超过100个,可以调整Stress multiplier的值或使用多个客户机来测试

时间设置包括“Test Run Time”(测试运行时间)和“Request Delay”(停止响应)以及“Suspend”(挂起时间)三项。其中测试运行时间是以日、小时、分钟、秒的格式来设定的,建议该项时间不宜太短,如果设置的并发数较多,那么时间应该按比较增长,以便产生足够多的请求;而停止时间是指连接时超出这个时间即作超时处理;

warmup(热身)时间,一般可以设置为1~3分钟。在warmup期间WAS开始执行脚本,但不收集统计数据。warmup时间给MTS、数据库以及磁盘缓冲等一个机会来做准备工作。如果在warmup时间内收集统计数据,这些操作的开销将影响性能测试结果。

限制带宽(throttle bandwidth)。带宽限制功能能够为测试模拟出Modem14.k K28.8 K56 K)、ISDN64 K128 K)以及T11.54 M)的速度。使用带宽限制功能可以精确地预测出客户通过拨号网络或其他外部连接访问Web服务器所感受的性能。

. 测试压力
1. 点击工具栏的开始运行按钮

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(13.43 KB)



2. 点击Run Test 开始测试

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(8.74 KB)



3. 正在测试服务器压力,time left 的时间为剩余时间.如果设置了热身时间则会先出现倒计时为WARMUP的

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(7.27 KB)



4. 如果提示 RPC 服务不可用,请查看PRC 服务是否开启,并设置成自动. 还可能是你的脚本错误,这种情况下删除当前脚本,重新收集就没问题啦


图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(6.48 KB)



图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(9.33 KB)



5.这时可以用netstat –an 来查看是否开启了很多连接,其中state established 的表示已连接上

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(17.87 KB)



图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(18.61 KB)



6. 查看CPU 大部分进程都被Webtool 所占用

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(27.21 KB)



7. 查看CPU 的使用率

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(27.34 KB)



8. 用性能监视器查看当前性能

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(19.11 KB)


9. 查看服务器端的性能

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(36.79 KB)



四.查看测试报告,分析数据
1. 点击工具栏的报告,查看测试报告

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(21.76 KB)



2. 着重查看“Socket Errors”部分和“Result Codes”部分。其中Socket Errors部分共分为Connect、Send 、Recv和Timeouts。其中Connect表示客户端不能与服务器取得连接的次数;Send表示客户端不能正确发送数据到服务器的次数;Recv表示客户端不能正确从服务器连接次的次数;Timeouts表示超时的线程数目。如果这四个数值都比较小,甚至为0则说明这个服务器是经得起考验的;如果数值居高不下,甚至接近设置的并发数,那么则要好好的检查你的服务器了

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(4.82 KB)



“Result Codes”部分,如果Code列表下的数值都为200,那么表示所有请求都经服务器成功返回,如果数值出现400或大于400,例如404,那么则需要在左侧找到“Page Data”节点,查看具体的错误项目,然后作出相应的修改。

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(4.89 KB)



图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(25.04 KB)




3. 速度

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(6.19 KB)



4 连接数,服务器IP,. 时间参数

图解用WAS对Web服务器进行压力测试

2011-8-12 08:50:37 上传
下载附件(5.35 KB)


5. 测试最好由多台客户机来测试,不要在一台测试机上设置超大的连接数Stress Level值,且这些测试机分布在不同的地方。在你测试服务器的内网会出现网页无法显示,访问其他网站的网页也打不开,这时可以让不跟你在同一个局域网内的朋友访问试一下你的服务器。不断的增加或减少连接数,经过多次测试才知道这个服务器能承受多大压力。如果是IIS搭建的服务器还可以修改允许的最大连接数。得到数据后分析数据,服务器资源分布,响应处理速度,大量用户或遭到攻击时该采取哪些相应的措施,以及性能优化。