ayong401 2004-10-22 14:50
ASP.NET负压测试
ASP.NET负压测试
广东南海市公安局计算机安全监察股 喻凯
2002-4-19 10:28:43
--------------------------------------------------------------------------------
前 言
对于直接面对互联网用户的WEB应用,在开发设计的时候必须格外小心,因为谁也不知道在单位时间内WEB程序访问和运行的速度。所以,在程序设计完成以后,最后针对程序进行一些严格的甚至是苛刻的测试,以确定程序在复杂的网络环境和服务器高压负荷下是否可以保持正常和相对稳定的效率。
什么是负压测试
负压测试一般针对WEB应用进行,比如网站等。进行负压测试的目的是为了确定WEB应用在现实的网络环境中是否可以正确而安全的处理各种用户提交的不确定请求,检验程序的健壮性。
负压测试的另外一个目的在于故意提供足够多的请求,观察程序在这种情况下的反应能力。
为什么要负压测试
可能大家现在都已经很熟悉一个很著名的搜索引擎Google,我们知道,这个搜索引擎不但搜索结果准确,而且,搜索速度更是奇快无比。搜索结果准确,那是程序算法在一个方面的表现,搜索速度快,则关系到整个系统的构件和程序的健壮行。如果希望自己编写的程序也可以在大访问量的情况下“从容不迫”,就有必要对程序进行负压测试。
对于访问量较大的网站或者程序,特别是提供一些比较热门话题程序,最好在正式将网站或者程序公布以前进行比较完备的负压测试,并且根据测试即使优化程序或者合理配置服务器硬件,这样网站不至于在用户量急剧增加的情况下出丑甚至崩溃。
使用ACT进行测试
ACT简介
ACT(或者MSACT)是微软的Visual Studio 和Visual Studio.NET带的一套进行程序测试的工具,也正是我们的负压测试需要用到的。ACT不但可以记录程序运行的详细数据参数,用图表显示程序运行状况,而且安装和使用都比较简单,结果阅读也很方便,是一套较理想的测试工具。
安装ACT
最起码,当然我们需要Visual Studio,ACT似乎还没有单独的版本出现。在这里,我们测试一个WEB Service的在高负荷情况下的运行性能。首先,在Visual Studio中打开ACT(如图)
[img]http://www.ccw.com.cn/htm/center/prog/02_4_13.jpg[/img]
程序会提示是否建立一个新的工程,点击“是”,然后输入一个文字说明,出现以下界面(图二):
[img]http://www.ccw.com.cn/htm/center/prog/02_4_11.jpg[/img]
打开ACT以后,我们可以开始测试了。
建立一个新的测试
点击菜单【Action】->【New Test】(如图三)
[img]http://www.ccw.com.cn/htm/center/prog/02_4_14.jpg[/img]
会出现一个向导界面(图四)
[img]http://www.ccw.com.cn/htm/center/prog/02_4_15.jpg[/img]
向导我们太熟悉了,仔细阅读每个界面的说明文字, 选择就可以了。
编辑测试
经过以上的设置,会出现以下界面(图五):
[img]http://www.ccw.com.cn/htm/center/prog/02_4_16.jpg[/img]
很明显,以上界面我们人为的将它分为了三个部分,而且每个部分颜色各不相同。以上不同颜色的三个部分分别为:
左边蓝色部分:导航栏,测试入口和结果人口;
右上绿色:提示信息栏;
右下红色:VBS代码栏,在这里编辑测试需要的一些VBS代码,测试成功有效与否,全部依靠这些代码的执行情况。所以,这些代码最好仔细考虑并且多次测试;
在进行测试之前,首先设置测试的一些选项(菜单【Action】—>【Properties】)如图六
[img]http://www.ccw.com.cn/htm/center/prog/02_4_17.jpg[/img]
在以上界面,主要设置两个参数:
(1) Test duration设置,这里设置测试进行时间,默认为5分钟;
(2) 在Counters标签页设置一些测试性能数据;
以上设置完成以后,就可以开始修改VBS代码了,我们没必要遍历整个VBS代码,只看一些主要的:
Test.SendRequest("http://localhost/")
以上是默认代码,我们可以修改为以下代码:
Test.SendRequest("http://localhost/philipq/wsmessages/wsmsg.asmx/MPost?webKey=w2k&UName=Ad&UPassword=pwd&UTo=Admin&UMessage=ACT+Test")
以上代码的编写应该根据自身程序的特点来修改,以达到最好测试效果。
执行测试
点击工具栏的【Start】按钮开始测试如图):
[img]http://www.ccw.com.cn/htm/center/prog/02_4_18.jpg[/img]
测试进行的时候,会出现以下窗口提示(如图):
[img]http://www.ccw.com.cn/htm/center/prog/02_4_19.jpg[/img]
以上界面显示程序测试的时间、剩余时间、每秒提交的Request数量、提交的Request总量、错误数量等。点击按钮【Show details】可以查看详细数据。
测试结束以后,就可以查看测试的结果了。
阅读测试结果
测试完成以后,可以在图二左边的Result分支点击查看测试结果,在右方的报表栏我们可以查看到以下数据:OverView、Graphs、Requests等,下图是一个OverView的数据举例:
[img]http://www.ccw.com.cn/htm/center/prog/02_4_110.jpg[/img]
从以上报告可以看到,测试的程序每秒提交request23次,总共1400次。
测试结果的使用
根据测试的结果,我们可以知道程序运行的情况、在高负荷下服务器的承受能力。根据这些数据,我们来确定程序的性能和服务器的性能,以此来预测在程序正式使用以后可能遇到的情况和服务器需要的改进。
其他选择
上面介绍的ACT虽然很不错,但是,毕竟不是每一个用户都使用Visual Studio,这时候,我们可以考虑其他工具来进行测试。
Microsoft Web Application Stress Tool (WAS)
这个工具和ACT一样是微软的产品,但是,这个工具没有和Visual Studio集成,可以单独使用。感觉这个程序现在还在测试,但是一些基本的功能已经很完备,可以完成ACT几乎所有功能,而且,WAS使用更加简单,设置也更加完备明了。这个工具的另外一个特点是,它的报表是纯文本文件,而不是流行的HTML文件格式,但是,内容方面一点也不逊色。
关于这个工具的更多信息,可以在这里查阅:
[url]http://homer.rte.microsoft.com/[/url]
Open System Testing Architecture (OpenSTA)
OpenSTA的特点是可以模拟很多用户来访问需要测试的网站,它是一个功能强大、自定义设置功能完备的软件,但是,这些设置大部分需要通过Script来完成,因此,在真正的使用这个软件之前,必须学习好它的Script编写。如果需要完成很复杂的功能,Script的要求还比较高,当然,这也是它的优点,一些程序员不会在意这些Script的。
这个软件完全免费而且源代码可以下载,感兴趣的朋友可以自己修改达到要求。
关于这个工具的更多信息,可以在这里查阅:
[url]http://www.opensta.org/[/url]
[url]http://opensta.sourceforge.net/[/url]
PureLoad
PureLoad是基于Java的测试工具,它的Script代码完全使用XML,所以,这些代码的编写很简单,它的测试报表包含文字和图形并可以输出为HTML文件。由于是基于Java的软件,所以,可以通过Java Beans API来增强软件功能。
关于这个工具的更多信息,可以在这里查阅:
[url]http://www.pureload.com/[/url]
QALoad
QALoad不单单测试WEB应用,还可以测试一些后台的东西,比如SQL Server等,只要是它支持的协议,都可以测试;另外一点,QALoad不但可以测试Windows,而且可以测试AIX, HP-UX 和 Solaris等系统。但是,这款软件价格很高。
关于这个工具的更多信息,可以在这里查阅:
[url]http://www.compuware.com/products/qacenter/qaload/[/url]
LoadRunner
对于财大气粗的大公司而言,这款软件可能比较适合,它的功能和QALoad相比不相上下,市面上著名的公司如IBM、SUN、Oracle等都用这个软件。但是它的价格也高不可攀,和功能成正比。
关于这个工具的更多信息,可以在这里查阅:
[url]http://www-heva.mercuryinteractive.com/products/loadrunner/[/url]
[[i] Last edited by ayong401 on 2004-10-22 at 14:52 [/i]]
bxue 2004-11-3 18:22
版主,好贴啊,看了你的贴子帮我解决了一个问题,谢谢!!!
ayong401 2004-11-4 08:37
为测试人员服务!
someone5 2004-11-23 11:25
要是能对测试结果进行一下分析就好了
huipingzhai 2004-11-25 15:30
谢谢
liubin2004 2004-12-7 13:59
我们也在用的,是感觉还不错的阿
不过我们是刚才开始学习的
carol2000 2005-1-21 14:05
感觉 ASP.NET架构的论坛与传统的ASP论坛有区别
kayatazz 2005-1-30 20:36
关于ACT的使用,有一本ACE小组写的书可以看看
国内由清华出的
叫microsoft .net web 应用程序性能测试
sunhongdongkun 2005-3-28 16:40
谢谢
望江楼主 2005-4-6 11:20
一般而言,ASP搭建的网站的健壮性不是很强,很容易搞死!
Edward_hua 2005-4-6 11:23
ACT简单 实用
简单的测试 还是不错的
syycrazy 2005-4-21 11:36
at now I can't even know its real meaning2
和颜悦色 2005-6-11 15:23
楼主,能不能再详细介绍一下从结果怎么看出性能的好坏,找到系统的瓶颈
?
madwolfer 2005-6-22 12:44
谢谢,现在在用WAS
和颜悦色 2005-7-1 16:25
WAS是不是要比ACT要好用?
woaizhu621 2005-7-26 10:56
我想请教各位大虾,在测试网站时,针对性能测试应该怎样进行呢?
网站中那么多的功能,在录制脚本的时候总不能,每个功能都操作吧~~:(
我是菜鸟,刚刚接触这方面的测试,万望各位赐教测试方法
yanlixin 2005-8-15 15:13
谢谢,好东东,找了很久了.
exliu 2005-9-1 16:42
帖子很好,介绍听详细。不过目前对工具的使用的介绍很多,但对结果分析的文章很少,真希望斑竹或各位高手,总结总结给大家。
93326736 2005-9-12 13:52
上面说的很好,可是我们都会了啊,斑竹在对结果分析下啊!
通过RPS真能找到FWQ的最大浏览器瓶颈吗?
还有对性能计数器的分析,也希望有ACT高手指点下,给点资料,网上有关这方面的内容很少
hmzhang 2005-9-21 14:47
好东西,正在用
yangwy23 2005-9-26 10:46
要是能对测试结果进行分析那就更好了!!!
希望各位大虾能给出对测试结果的分析情况!!!
gaogao 2005-10-9 13:01
还没有用过 :(,但是看了以后,了解了很多。就是不知道这个软件对java开发的程序是否适用,很想知道测试结果的几个方面,如
(1)服务器不能承受压力,测试结果是如何体现的,客户端会怎么样呢?
(2)经过几次压力测试,可以证明测试结果接近实际。
(3)测试结果中,异常的表现通常表现在哪几方面。
非常感谢,请教各位大虾 :)
zhdm 2005-10-13 04:07
谢谢楼主分享
ivan0120 2005-12-6 09:11
呵呵,我就用ACT,目前正在使用LoadRunner!
mosquito 2005-12-6 14:13
不错啊
DAVID.QU 2005-12-30 17:12
Microsoft Visual Studio 2005 里面的ACT在哪里啊??我怎么找不到?偶用的是BEAT3的.请指教
pierre0505 2006-1-4 19:11
was的链接怎么打不开阿?
talent467 2006-1-25 13:39
好像明白了一点点。谢谢咯
changyuxiang 2006-2-18 00:42
it's quite nice!
tomzhang 2006-3-24 11:26
好东东!学习中!!
983221wy 2006-5-4 15:47
学习好东东!!!!!
huaer5299 2006-5-10 08:50
谢谢
谢谢楼主。获益匪浅啊!~
shwonder 2006-5-13 20:55
好强大的东西,只是不晓得有冒得e版
wxh8098 2006-6-2 17:27
请问各位,用ACT可以进行并发性的测试吗?要是可以,如何对结果进行分析?
我真的很傻 2006-6-7 09:54
很不错!
这些资料真的对我帮助好大!谢谢啊!
suyunxia 2006-7-11 18:36
3Q
karry 2006-7-19 11:27
我还能说什么:“牛”
Wheatlee 2006-7-24 16:55
楼主用的VS版本是什么呀?
testcat 2006-8-28 13:09
谢谢阿!辛苦了
linda22 2006-9-1 18:49
谢谢,很有用的东西!