ASP.NET负载压力测试

前  言
对于直接面对互联网用户的WEB应用,在开发设计的时候必须格外小心,因为谁也不知道在单位时间内WEB程序访问和运行的速度。所以,在程序设计完成以后,最后针对程序进行一些严格的甚至是苛刻的测试,以确定程序在复杂的网络环境和服务器高压负荷下是否可以保持正常和相对稳定的效率。

什么是负压测试
负压测试一般针对WEB应用进行,比如网站等。进行负压测试的目的是为了确定WEB应用在现实的网络环境中是否可以正确而安全的处理各种用户提交的不确定请求,检验程序的健壮性。
负压测试的另外一个目的在于故意提供足够多的请求,观察程序在这种情况下的反应能力。

为什么要负压测试
可能大家现在都已经很熟悉一个很著名的搜索引擎Google,我们知道,这个搜索引擎不但搜索结果准确,而且,搜索速度更是奇快无比。搜索结果准确,那是程序算法在一个方面的表现,搜索速度快,则关系到整个系统的构件和程序的健壮行。如果希望自己编写的程序也可以在大访问量的情况下“从容不迫”,就有必要对程序进行负压测试。
对于访问量较大的网站或者程序,特别是提供一些比较热门话题程序,最好在正式将网站或者程序公布以前进行比较完备的负压测试,并且根据测试即使优化程序或者合理配置服务器硬件,这样网站不至于在用户量急剧增加的情况下出丑甚至崩溃。


使用ACT进行测试

ACT简介
ACT(或者MSACT)是微软的Visual Studio 和Visual Studio.NET带的一套进行程序测试的工具,也正是我们的负压测试需要用到的。ACT不但可以记录程序运行的详细数据参数,用图表显示程序运行状况,而且安装和使用都比较简单,结果阅读也很方便,是一套较理想的测试工具。

安装ACT
最起码,当然我们需要Visual Studio,ACT似乎还没有单独的版本出现。在这里,我们测试一个WEB Service的在高负荷情况下的运行性能。首先,在Visual Studio中打开ACT(如图)

程序会提示是否建立一个新的工程,点击“是”,然后输入一个文字说明,出现以下界面(图二):


打开ACT以后,我们可以开始测试了。

建立一个新的测试
点击菜单【Action】->【New Test】(如图三)


会出现一个向导界面(图四)


向导我们太熟悉了,仔细阅读每个界面的说明文字, 选择就可以了。

编辑测试
经过以上的设置,会出现以下界面(图五):


很明显,以上界面我们人为的将它分为了三个部分,而且每个部分颜色各不相同。以上不同颜色的三个部分分别为:
左边蓝色部分:导航栏,测试入口和结果人口;
右上绿色:提示信息栏;
右下红色:VBS代码栏,在这里编辑测试需要的一些VBS代码,测试成功有效与否,全部依靠这些代码的执行情况。所以,这些代码最好仔细考虑并且多次测试;
在进行测试之前,首先设置测试的一些选项(菜单【Action】—>【Properties】)如图六


在以上界面,主要设置两个参数:
(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】按钮开始测试如图):


测试进行的时候,会出现以下窗口提示(如图):


以上界面显示程序测试的时间、剩余时间、每秒提交的Request数量、提交的Request总量、错误数量等。点击按钮【Show details】可以查看详细数据。
测试结束以后,就可以查看测试的结果了。

阅读测试结果
测试完成以后,可以在图二左边的Result分支点击查看测试结果,在右方的报表栏我们可以查看到以下数据:OverView、Graphs、Requests等,下图是一个OverView的数据举例:


从以上报告可以看到,测试的程序每秒提交request23次,总共1400次。

测试结果的使用
根据测试的结果,我们可以知道程序运行的情况、在高负荷下服务器的承受能力。根据这些数据,我们来确定程序的性能和服务器的性能,以此来预测在程序正式使用以后可能遇到的情况和服务器需要的改进
posted @ 2009-03-19 23:13  silverPerson  阅读(697)  评论(0编辑  收藏  举报