writer: demonalex
email: demonalex_at_dark2s.org
前言:看完了SQL的《用WEB压力测试工具模拟请求服务的DOS攻击》,尤觉得意尤未尽,为摸清此软件的
部分功能,特为此做了一段时间的实验(途中感谢很多网友为此‘捐’出自己的服务器),写了以
下一篇烂文,希望能补充SQL大哥在该文中没有点明的知识点。
参考资料:《用WEB压力测试工具模拟请求服务的DOS攻击》、《WEB压力测试指南》
WEB压力测试(WebStress)一直以来都是很多IDC评测人员、网络管理员以及网络安全专家针对服务器
性能的重点考察和评价的对象。今天小神有幸为某位网友的虚拟主机做个WEB压力测试(建议:压力测试通
常安排在渗透测试之后)。
实验环境:
被测试(服务端):WIN2000 ADVANCE SERVER + IIS + 光纤带宽
测试者(客户端):WIN2000 PROFESSIONAL + MS WEB APPLICATION STRESS + 中国电信ADSL
实验目的:
测试与分析WEB服务器所提供的HTTP服务的综合稳定性。
测试计划:
测试类型基准(baseline):静态测试案例(HTM、JPG)[因为朋友只使用了简单的HTML]
测试工具:单客户端、测试案例库,客户端程序
分析手段:采用对比分析
测试对象:企业级全能虚拟主机
对比对象:“中资源”虚拟主机(dark2s.net)
测试方案条件数值指标:
*************************************************************************************
Url 线程 持续时间 是否使用随机延迟 虚拟扼杀带宽 其他数值
------------------------------------------------------------------------------------
随机遍历地址 20 5分钟 200-400(毫秒) 56K MODEM(44k) default
*************************************************************************************
实验步骤:
使用Web Application Stress(下称WAS)生成两个新的压力测试脚本->使用RECORD方式记录其URL->配置
条件测试指标->测试->生成REPORT->以报表方式对比分析其结果
具体操作:
在客户端(localhost)打开MS WEB APPLICATION STRESS主程序的菜单栏选择:"Scripts"->"Create"->"
Record",选"Record Delay between request",按"next"。
"finish"。
接下来在弹出的浏览器的地址栏中填入你所要测试的WEB服务器地址,随机浏览几个页面,模拟正常浏
览地随机使用WEB的一些功能等。最后关闭浏览器,在WAS点击"stop recording"按钮回到主界面,在主
脚本显示界面的下方你会看到一个URL行为列表脚本(包括行为、URL地址、组、延迟值),最后在主脚本
显示界面的上方的"Server"输入栏中填入需要测试的主机地址。如下图:
完成上述步骤后,点击脚本列表下的"Settings"进入设置显示界面,并填入相关参数指标。
最后回到主显示界面,点击工具栏的"Run Script"进入压力测试状态。
使用Active Ports查看其连接情况,从下图中不难发现WAS现在使用一个进程内的多线程针对主机进行
模拟连接测试。
测试完成后点击工具栏的"Reports"按钮查看其测试报告。测试报告以树状形式分布,根以被测试服务
器划分,子根为测试日期,其下的分枝部分为各类数值的分类指标值。我们要获取整个被测试服务器
的宏观数值指标只需要点击测试日期“子根”就可以了。
使用与上述测试相同的步骤和参数指标‘如法炮制’剩下的那台待测服务器(因为时间的关系,小神已
经预先把做好的截图放上来了:P)。
最后剩下的工作就是数据规划与对比分析了。开始时还以为需要手工做数据规划这些细腻的整理工作(
小神可是出了名的老眼昏花哦!),后来才发现WAS是带有内置数据库的(微软可不是省油的灯)。使用MS
OFFICE的附属工具access打开WAS目录下的WAS.mdb数据库文件,项目中所有的测试条件数值指标与测
试得出的数据都将会以‘表’的方式排布在你的面前。阁下只需要找到所需要的属性类表并轻轻一点,
就一目了然了。
接下来将此.mdb数据库另外保存起来,用作该次测试的初步数据分析蓝本;其后进行对比分析只需再
使用access打开原来保存好的那个.mdb数据库,并通过‘子表’链接的方式把需要分析的数据类表与
’Report’类表链接起来就能够轻易地进行指标数据的对比分析了。
当然,如果你的老板有什么特别需要的话,你也可以结合WORD、EXCEL等工具做出各式各样的分析报
表提交上去......后面的“东西”小神就不多说了:P。
本文写到此处,这次简单的WEB压力测试项目就算告一段落了,当然,现实生活中的WEB压力测试
并不是那么简单的(也许现实生活中的WebStress测试会做到让你发疯:P)。
最后让我们总结一下整个测试的基本步骤吧:
①了解测试所使用的软件。这是测试前的准备工作 ,任何一个项目,在开始测试之前,
都应该对它有个全面的了解,如这个软件是干什么的,其功能和性能主要体现在哪几
个方面,有什么特点,如何才能体现这些特点等。
②拟定测试计划。测试计划就是定义一个测试项目的过程 ,以便能够正确地度量和控
制测试。
③实施测试的过程。遵照测试计划,在各种条件下,运行事先设计的测试脚本,记录We
b服务器及相关客户端的性能参数。
④分析测试结果。测试会收集到大量的数据,根据这些数据就可以帮助分析Web应用程
序的性能。
##################################################################################################################
Some Tips about WAS:
安装WAS后,每次WINDOWS在启动时都会启动一个名为"WebTool"(进程:"webtool.exe")的服务,建议各
位到“管理工具”->“服务”,把这个服务调节为“手动”,并在每次使用WAS后将该服务停止,以免
长期占用阁下的系统资源。
##################################################################################################################
相关测试程序Web Application Stress(WAS)可以到本人的主页http://demonalex.dark2s.org中
下载。
附录:Web压力测试的基本指标列表
===============================================================================================
Number of hits:测试间隔内虚拟用户点击页面的总次数
Requests per second:每秒客户端的请求次数
Threads:线程数,即虚拟用户并发量
Socket Errors Connect:Socket错误连接次数
Socket Errors Send:Socket错误发送次数
TTFB Avg:从第一个请求发出到测试工具接收到服务器应答数据的第一个字节之间的平均
时间
TTLB Avg:从第一个请求发出到测试工具接收到服务器应答数据的最后一个字节之间的平
均时间
根据以上数据,可以从以下几个方面分析应用程序性能,生成相应报表:
Number of hits vs. Users:随着虚拟用户的增加,服务器在规定时间内所能处理的总点
击数
Requests per second vs. Users:随着虚拟用户的增加,服务器在规定时间内所能处理
的每秒请求数
Errors vs. Time:随着模拟访问时间的延续,出现错误的数量
Errors vs. Users:随着虚拟用户的增加,出现错误的数量
Performance Distribution vs. Users:针对虚拟用户数的应用性能分布情况,包括服务
器的内存、CPU使用情况等
Performance vs. Users:随着虚拟用户的变化,应用性能的变化
下载地址:http://microsoft-web-application-stress-tool.archivospc.com/
WAS是个压力测试工具,使用时,发现如下心得:
1 使用时必须使用性能计算器(win2000的),之后,可以从读数中得到
处理器时间(PROFESSOR TIME)和请求时间(requests/sec:就是每秒处理多少个请求),则可以计算出每个请求平均需要的百万周期数
处理器速度(MHZ)*处理器个数*处理器的平均时间(professor time)
-------------------------------------------------------------------------------
每秒处理的asp.net应用程序请求计算器的平均数
2 ttfb:从工具第一次请求页面到它收到页面的第一个字节所经过的时间
TTLB:从第一次请求到收到页面的最后一个字节所经历的时间
3 网站中要禁止压力工具的探测,可以这样:
在ROBOTS.TXT文件中,加入
disallow:/
user-agend:stress-agent
下载地址:http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1298
http://microsoft-web-application-stress-tool.archivospc.com/
http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1466
http://www.soft32.com/Download/free-trial/Webserver_Stress_Tool/4-1096-1.html