有关Performance Test的几个心得

发表于:2007-9-07 16:13

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:dlele    来源:微软测试专家群

分享:

  以前总觉得Performance Test和Load Test有区别,但说不清区别在什么地方,两个词经常是混着用。最近参加了ACE Team的培训,总算搞清楚了,所以和大家分享一下。

1.       Performance Test 和Load Test 的区别。

  Performance Test和Load Test还是有很大区别的。如果测试的目的是关注Performance, 即使没有Load,也是Performance Test。比如说一个Web 应用,Performance Test首先要做的事情是观察单个用户情况下的Performance,比如一个页的大小和用了多少时间下载到IE上。如果单个用户的情况下就观察到Performance的问题,那么首先要解决这个问题。

  从另外一个方面讲,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。这个数字已经表明是个很忙的网站了。

  世界上最忙的网站比如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 中就可以发现。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号