版权声明:本文能够被转载,可是在未经本人许可前,不得用于任何商业用途或其余以盈利为目的的用途。本人保留对本文的一切权利。如需转载,请在转载是保留此版权声明,并保证本文的完整性。也请转贴者理解创做的辛劳,尊重做者的劳动成果。apache
做者:陈雷 (Jackei)函数
邮箱:jackeichan@gmail.com工具
Blog:http://jackei.cnblogs.com性能
LoadRunner中的90%响应时间是什么意思?这个值在进行性能分析时有什么做用?本文争取用最简洁的文字来解答这个问题,并引伸出“描述性统计”方法在性能测试结果分析中的应用。测试
为何要有90%用户响应时间?由于在评估一次测试的结果时,仅仅有平均事务响应时间是不够的。为何这么说?你能够试着想一想,是否平均事务响应时间知足了性能需求就表示系统的性能已经知足了绝大多数用户的要求?blog
假若有两组测试结果,响应时间分别是 {1,3,5,10,16} 和 {5,6,7,8,9},它们的平均值都是7,你认为哪次测试的结果更理想?排序
假若有一次测试,总共有100个请求被响应,其中最小响应时间为0.02秒,最大响应时间为110秒,平均事务响应时间为4.7秒,你会不会想到最小和最大响应时间如此大的误差是否会致使平均值自己并不可信?事务
为了解答上面的疑问,咱们先来看一张表:get
在上面这个表中包含了几个不一样的列,其含义以下:数学
CmdID 测试时被请求的页面
NUM 响应成功的请求数量
MEAN 全部成功的请求的响应时间的平均值
STD DEV 标准差(这个值的做用将在下一篇文章中重点介绍)
MIN 响应时间的最小值
50 th(60/70/80/90/95 th) 若是把响应时间从小到大顺序排序,那么50%的请求的响应时间在这个范围以内。后面的60/70/80/90/95 th 也是一样的含义
MAX 响应时间的最大值
我想看完了上面的这个表和各列的解释,不用多说你们也能够明白个人意思了。我把结论性的东西整理一下:
1. 90%用户响应时间在 LoadRunner中是能够设置的,你能够改成80%或95%;
2. 对于这个表,LoadRunner中是没有直接提供的,你能够把LR中的原始数据导出到Excel中,并使用Excel中的PERCENTILE 函数很简单的算出不一样百分比用户请求的响应时间分布状况;
3. 从上面的表中来看,对于Home Page来讲,平均事务响应时间(MEAN)只同70%用户响应时间相一致。也就是说假如咱们肯定Home Page的响应时间应该在5秒内,那么从平均事务响应时间来看是知足的,可是实际上有10-20%的用户请求的响应时间是大于这个值的;对于Page 1也是同样,假如咱们肯定对于Page 1 的请求应该在3秒内获得响应,虽然平均事务响应时间是知足要求的,可是实际上有20-30%的用户请求的响应时间是超过了咱们的要求的;
4. 你能够在95 th以后继续添加96/ 97/ 98/ 99/ 99.9/ 99.99 th,并利用Excel的图表功能画一条曲线,来更加清晰表现出系统响应时间的分布状况。这时候你也许会发现,那个最大值的出现概率只不过是千分之一甚至万分之一,并且99%的用户请求的响应时间都是在性能需求所定义的范围以内的;
5. 若是你想使用这种方法来评估系统的性能,一个推荐的作法是尽量让你的测试场景运行的时间长一些,由于当你得到的测试数据越多,这个响应时间的分布曲线就越接近真实状况;
6. 在肯定性能需求时,你能够用平均事务响应时间来衡量系统的性能,也能够用90%或95%用户响应时间来做为度量标准,它们并不冲突。实际上,在定义某些系统的性能需求时,必定范围内的请求失败也是能够被接受的;
7. 上面提到的这些内容实际上是与工具无关的,只要你能够获得原始的响应时间记录,不管是使用LoadRunner仍是JMeter或者OpenSTA,你均可以用这些方法和思路来评估你的系统的性能。
事实上,在性能测试领域中还有更多的东西是目前的商业测试工具或者开源测试工具都没有专门讲述的——换句话说,性能测试仅仅有工具是不够的。咱们还须要更多其余领域的知识,例如数学和统计学,来帮助咱们更好的分析性能数据,找到隐藏在那些数据之下的真相。
欢迎各位同行高手灌水拍砖 ^_^
后续请继续关《LoadRunner 没有告诉你的》之二——Std.(标准差) 在性能测试分析中的应用 。