极速手机网

有关performancetest的几个心得

以前总觉得Performance Test和Load Test有区别,但说不清区别在什么地方,两个词经常是混着用。近期参加了ACE Team的培训,总算搞清楚了,所以和大家分享一下。
有关performancetest的几个心得
有关performancetest的几个心得图一
1.Performance Test 和Load Test 的区别。
Performance Test和Load Test还是有很大区别的。如果测试的目的是关注Performance, 即使没有Load,也是Performance Test。比如说一个Web 应用,Performance Test首先要做的事情是观察单个用户情况下的Performance,比如一个页的大小和用了多少时间下载到IE上。如果单个用户的情况下就观察到Performance的问题,那么首先要解决这个问题。
有关performancetest的几个心得
有关performancetest的几个心得图二
从另外一个方面讲,Load Test不一定是Performance Test。在一个项目的测试结尾,做一些Load Test总会抓到一些在没有Load情况下看不到的bug,比如在多线程情况下的Race Condition会导致一些线程的工作失败。所以Load Test首先关注的不是Performance,而是在有Load的情况下系统是否会有错。
当然,在Load Test没有报错和对Performance的要求明确的情况下,可以开始用Load Test来做Performance Test,以仿真现实。
2.Performance Test的Load要求
通常正式的Performance Test都要求定义Performance的Load。比如Web 应用,常用的定义方法是用Request Per Second 或写成Request/Secong,或叫RPS。比如我们通常用的标准是20 RPS的情况下的Performance data。20 RPS就是每秒处理20个web 请求,这个量看起来不大,其实现实中很多应用的RPS不到10。比如10 RPS,意味着一分钟内用600个请求,10分钟内有6000个请求,同时在线人数可能是这个数字的十倍60000。这个数字已经表明是个很忙的网站了。
有关performancetest的几个心得
有关performancetest的几个心得图三
世界上最忙的网站比如MSN,同时在线可能上千万,但不是每个人都在做同样的事情,比如同时做登录的人可能只有万分之一。同时处理登录的服务器不止一台,可能有上百台,最后分到每台服务器可能不到10RPS。这些都是在搜集要求时要考虑的因素。
在考虑正常情况后,也要估计高峰(Peak)的Performance,如果估计可能遇到意想不到的高峰期,最好能够对web应用所能承担的上限有所了解。由于对数据库服务器的Clustering有一定难度,最常见的问题是在高峰时,瓶颈产生在数据库的联结上。做Performance Test时可能常常是一两台测试主机对一台数据库主机,在实际生产中可能是好几台主机连接一台数据库。
3.Performance Test不一定要测试。
很多Performance的问题不一定需要测试,测试不一定测得出来。比如,程序中用了很多“+”作字符串的连接,做Redirect的时候用HttpResponse.Redirect (“http://...”)而没有用HttpResponse.Redirect (“http://...”,false),第一种用法会产生ThreadAbortException,从而产生Performance的问题。所以很多Performance的问题在设计和Code Review 中就可以发现。
以上就是有关performancetest的几个心得

相关下载

相关文章

相关软件

大家都在找