使用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的经验。