使用Application Center Test (ACT)来做压力测试
在我们完成了基于SPS2003的开发,实现了我们的具体应用以后,我们是不是就可以直接请用户来使用了呢?如果我这么做,那么有经验的开发人员一定会对此嗤之以鼻:居然连压力测试也不做!真是不想活了……
呵呵,是啊。开发环境往往只考虑功能,到了具体环境中,就需要考虑有大量的用户来访问的时候,很多功能会不会出错?性能会怎么样呢?……我们这里就简单看看,怎么来做压力测试。
相信作压力测试肯定有很多工具,而我们一般使用的,现在很多是Application Center Test (ACT)。这个东东是VS.NET中的一个组建,很简单,容易上手,而且支持脚本,也可以实现复杂的功能……
这里省略测试步骤,假设我们只是直接对一个网站做测试,例如Test.SendRequest("https://server/default.aspx")。现在怎样来分析结果呢?
下面是我刚学到的一些信息,和大家共享,希望对于有经验的朋友,起一个抛砖引玉的功能。
1. 首先,检查一下又没有错误,例如401用户没有验证的错误。如果有错误,那么结果肯定是不对的,也不用看了。
2. 分析Average requests per second,应该就是“每秒平均请求”。
我们可以多测试几次,使用1、2、5、10、50、100、200……的并发浏览器连接数目。然后,我们可以把几次结果放在一个图表中来分析。
一般情况下,随着并发浏览器连接数目的增加,Average requests per second的数目也会增加,但当到了某一个值以后,再增加就反而导致Average requests per second下降了。那么,这个值就差不多是服务器能支持的最大并发浏览器连接数目。
3. Average time to last byte
是发送请求以后,到收到服务器响应结束的时间。
显然,一般情况下,随着并发浏览器连接数目的增加,这个值是会随着变大的。一般情况下,分析这个值是不是合理,可以参考下面的标准:
0.1秒: 非常快了
1秒: 速度还是非常快的,基本不用考虑性能问题
3 – 4秒: 对于内部网络,可以接受的一个结果
5 – 8秒: 对于外部网络,可以接受的一个结果
10秒以上: 太慢了一些
4. Average time to first byte
一样,只不过是发送请求以后,到收到服务器响应开始的时间。
欢迎大家讨论,发表关于ACT的经验。
Comments
- Anonymous
January 02, 2005
sps中的并发数是个让人混淆的东西, 他指的是"同一瞬间同时电击的浏览器数", 即便是这个时候有ie打开某sps网页,但只要不电击,仍然不应该被计入这个时候并发数。所以这个数字一般不会太大。即便如一个有30000人的大公司,一般也很难超过10.
所以,每秒平均请求一般没有必要到100,200。。。