51Testing软件测试论坛

标题: 手把手教你Web服务器压力测试 [打印本页]

作者: ilove51    时间: 2010-6-13 20:58
标题: 手把手教你Web服务器压力测试
 Web服务器搭建完成上线在即,其能够承载多大的访问量,响应速度、容错能力等性能指标,所有这些是管理人员最想知道也最为担心的。如何才能知晓这一切呢?通过工具进行Web压力测试是个好方法。通过它可以有效地测试Web服务器的运行状态和响应时间等性能指标。
  一、测试环境:
  hardsoft:CPU:Athlon XP2500+、内存512MB、硬盘80GB
  Server OS:Windows Server 2003
  IIS: 6.0
  BBS: 动网 7.0
  IP: 192.1681.20
  Tool:Web Application Stress Tool
  二、工具介绍
  可用来进行Web压力测试的工具有很多,比如微软的Web Application Stress、Linux下的siege、功能全面的Web-CT等等,这些都是非常优秀的Web压力测试工具。虽然这些工具给我们测试服务器承受能力带来方便,但是它们却是“双刃剑”,攻击者利用随便一种比较全面的测试工具就可以对一台小型的Web服务器发动灾难性的拒绝式攻击。
  下面笔者就以微软的Web Application Stress Tool(简称WAST)为例进行一次Web压力测试。这是由微软的网站测试人员开发的专门用来进行实际网站压力测试以一套工具。透过这套功能强大的压力测试工具,管理人员可以在网站实际上线之前先网站进行如同真实环境下的测试,以找出系统潜在的问题,对系统进行进一步的调整、设置工作。
  三、工具设置
  下载并安装WAST,过程及其简单。然后运行WAST可以看到其界面非常简洁,在对目标Web服务器进行压力测试之前,首先要对它进行一些必要的设置。
  1、设置并行连接数
  点击左侧的“Defaults→Settings”打开设置面板。在Concurrent Connections下进行并行连接设置。Stress level (threads)是最少线程,Stress multiplier是最大线程。这里的线程是指定程序在后台用多少线程进行请求,也就是相当于模拟多少个客户机的连接,一般填写 500~1000,因为这个线程数是根据本机的承受力来设置的,如果你对自己的机器配置有足够信心的话,那么可以设置得更高一些。(图1)

下载 (9.91 KB)
2010-5-5 17:24  
  图1
  2、设置持续时间
  在“Test Run Time”中用来指定一次压力测试需要持续的时间,分为天、小时、分、秒几个单位级别,比如我们设置为1个小时。(图2)

下载 (7.94 KB)
2010-5-5 17:24  
  图2
  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”设置是否进行名称解析。所有以上的选项大家可以根据自己的需要进行设置。(图3)

下载 (29.33 KB)
2010-5-5 17:24  
  图3
  四、压力测试
  设置完成后就可以进行压力测试,测试的步骤如下:
  第一步:点击工具栏上的“new script”按钮在打开的面板中点击“Nanual”按钮创建一个新的测试项目。在打开的窗口中对它进行设置,在主选项中的server中填写要测试的服务器的IP地址,这里我们填写192.168.1.20,在下方选择测试的Web连接方式,这里的方式Verb选择get,path选择要测试的Web页面路径,这里填写/Index.asp即动网的首页文件,WAST可以设置更多的Path。(图4)

下载 (22.65 KB)
2010-5-5 17:24  
  图4
  第二步:在“Settings”的功能设置中将Stress level (threads)线程数设置为1000。完毕后,点工具中的灰色三角按钮即可进行测试。测试过程中我们可以从服务器的任务管理器中看到CPU使用率已经 达到100%,损耗率达到最大见图5。在CMD窗口中使用命令netstat -an,可以看到客户端的IP地址在服务器上的80端口进行了非常多的连接见图6,而且Web网站已经打不开了,提示过多用户连接。(图5)(图6)

下载 (52.45 KB)
2010-5-5 17:24
  图5


  图6
 
本帖隐藏的内容需要回复才可以浏览
 总结:通过Web压力测试,管理员对Web服务器的抗压能力有了大概的把握,从而根据实际需要可以进行服务器硬件扩展,同时也为系统设置、软件选择等提供了依据。总括来说,在Web服务器正式发布前进行压力测试是非常必要的。
本文来自: 天天测试交流(http://www.365testing.com/bbs/) 详细文章参考:http://www.365testing.com/bbs/thread-22756-1-1.html
作者: ilove51    时间: 2010-6-13 21:03
发图真困难,试了几次,编辑时图转不过来。 发帖时把图全发就好了。 版主删了吧,我可能删不了。
作者: lxl8129    时间: 2010-7-16 10:00
标题: 回复 1# 的帖子
初学入门,谢谢指教
作者: kuangquanshui    时间: 2010-7-16 10:22
学习
作者: msnshow    时间: 2010-7-17 09:35
这个要写清楚,估计一本书都不够
作者: ilove51    时间: 2010-7-21 11:39
msnshow真活跃。看好你
作者: rnchg    时间: 2010-9-2 11:32
标题: 回复 1# 的帖子
谢谢啦啦
作者: smarttesting    时间: 2010-9-20 16:10
good article
作者: aidi-alex    时间: 2010-10-7 14:35
thanks
作者: veroniquelu    时间: 2010-10-12 18:02
jiyonga
作者: yulinger110    时间: 2010-10-13 16:00
谢谢
作者: 梓木    时间: 2010-11-9 17:00
刚开始做这方面,学习下~
作者: jaychang1989    时间: 2014-6-9 17:07
研究一下
作者: mayuping0516    时间: 2014-6-26 16:26
初学入门,谢谢指教与分享!
作者: zangaozj    时间: 2014-6-26 17:20
适合我这样的入门级用户!
作者: purpleleave    时间: 2014-12-2 10:25
学习
作者: log2008    时间: 2014-12-11 15:56
我学习一下,为啥图片不显示呢
作者: sy_lei    时间: 2014-12-16 10:52
学习一下
作者: 我是领导    时间: 2014-12-19 16:30
求指点,求赐教..
作者: zengxt    时间: 2014-12-27 16:04
感谢分享
作者: baiyueping    时间: 2014-12-29 16:08
学习

作者: 蝶飞我心    时间: 2015-2-10 09:53
为了看图片,谢谢楼主
作者: yangxing    时间: 2015-2-25 11:08
dfddsf
作者: btnn    时间: 2015-3-6 14:29
学习一下。
作者: hecker    时间: 2015-3-14 09:54
看不到图啊
作者: gyf0860    时间: 2015-5-20 11:11
学习
作者: andyqq    时间: 2015-5-30 17:26
瞧瞧
作者: 唐新星    时间: 2016-6-7 15:54
看看
作者: ml363046180    时间: 2016-6-26 14:48
来看看

作者: ailigong@163.co    时间: 2016-8-23 16:23
srryu
作者: ailigong@163.co    时间: 2016-8-23 16:30
无私奉献啊
作者: ailigong@163.co    时间: 2016-8-23 16:32
烦烦烦刚刚
作者: chenjbok    时间: 2016-8-30 15:35
好贴
作者: ying754    时间: 2016-9-8 18:06
谢谢楼主
作者: drunkboy2016    时间: 2016-9-28 11:10

初学入门,谢谢指教
作者: viking1024    时间: 2016-10-27 10:30
研究一下
作者: Lillian1487    时间: 2017-2-28 21:48
学习了
作者: qinruomo    时间: 2017-6-1 11:54
多谢




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2