ljonathan 发表于 2009-6-20 13:57:54

哪位高手解释下事务平均响应时间和场景运行总时间之间的关系,感觉有点解释不清

哪位高手解释下事务平均响应时间(Avg Tran Response Time )和场景运行总时间(Elapsed Time)之间的关系,感觉有点解释不清


运行场景(并发数:800 ,执行一次)得到如下数据:
   Tran Response TimeMaxMinAvgStd Last101.4010.30152.57128.5299.548Elapsed Time : 128s



系统总共运行了 128秒 ,但平均响应时间是 52秒多,要是乘以并发数800,是41600秒,那这两个运行总时间就是矛盾了
这两个数据应该怎么统一起来哦,肯定是我的算法错了,但是错在哪里呢,聆听高手教诲。。。

[ 本帖最后由 ljonathan 于 2009-6-20 14:14 编辑 ]

ljonathan 发表于 2009-6-20 14:29:24

总共128s , 800Vuser,每个Vuser循环一次:
128s/(800*1)=0.16    “平均每次的执行时间”是 0.16s

有点想法,但我解释不好:
一个是单线程的算法:52*800       1----->2------->3-------->
而实际中是多线程处理 :并不能简单的用52*800 ,算出运行的总时间,但52s这个数值和“平均每次的执行时间”差别太大了,
1-------->4-------->
2-------->5-------->
3-------->6-------->


《LoadRunner 没有告诉你的》----------中有句话:
      假如有一次测试,总共有100个请求被响应,其中最小响应时间为0.02秒,最大响应时间为110秒,平均事务响应时间为4.7秒,你会不会想到最小和最大响应时间如此大的偏差是否会导致平均值本身并不可信?
   
    我的想法是响应时间差别大的一个原因是场景运行时间短。
    这个时候,不采用平均响应时间,而用“平均每次的执行时间”来做为衡量点,可行吗?

shanxi 发表于 2009-6-20 14:40:46

你信不信

写《LoadRunner 没有告诉你的》的人 自己都不知道这时间是如何用代码体现的?
一个连具体实现代码都不知晓的人,确在这里用不严谨的试验来宣扬他所谓的“结论”,居然还有人真的相信了,可笑也合理,因为受众水平有限。

不过看你有怀疑 就已经说明你比其他人水平要好一些。

对于性能测试工具不要用这种形式简单的试验来证明它的结果,因为性能测试工具对数据的收集来自多种条件,更因为影响性能测试结果的条件很复杂。

[ 本帖最后由 shanxi 于 2009-6-20 14:51 编辑 ]

shanxi 发表于 2009-6-20 14:56:00

事物响应时间是并发的

并发则意味着你在烧水的时间内 你还能做饭

系统并发运行了 128秒

ljonathan 发表于 2009-6-20 15:29:15

感觉loadrunner这个工具,需要设置的东西和概念性的东西太多了,而一般的性能测试不需要那么复杂。。
现在是赶工作进度,不可能临时换工具-----要从新弄脚本,有时间的话更想找个开源的轻量级的性能测试工具,这样可以更清楚,工具是怎么实现并发的,能力允许的也可以根据自己的需要,改一改工具,
我明显感到被loadrunner 这个工具拖累了,脚本复杂时报个指针错误,你都不知道怎么修改,当然主要是我经验少,对性能测试理解不深
现在做性能测试,用loadrunner的话,也要和其他的测试方法(比如写多线程并发程序)互相验证,如果相互数据是一致的,才基本可信

虽然我从一开始就不迷信测试工具,但因为能力所限,还是暂时无法摆脱loadrunner的束缚。。

回复3楼的: 我信loadrunner帮助手册里,也没有相关说明,说这个数据是怎么算出来的,或者说是我没找到。

“对于性能测试工具不要用这种形式简单的试验来证明它的结果,因为性能测试工具对数据的收集来自多种条件,更因为影响性能测试结果的条件很复杂。”

你的这句话,我受教了。。。。。
做测试的应该具备一定的数据统计分析知识,否则就只是在做测试,缺乏规律性、结论性、预测性方面的认识。

回复4楼:
   我是模糊地明白,但是不能很好的解释,就是我没有真明白,所以容易迷惑。。。

[ 本帖最后由 ljonathan 于 2009-6-20 15:33 编辑 ]

shanxi 发表于 2009-6-21 10:37:15

关于性能工具我说两点

1.目前市面上绝大部分的性能测试工具并未模拟浏览器,而且没有一款性能测试工具完全模拟了任何一款浏览器

2.性能测试的最终目的是为了系统调优,而不是获取最大在线承载人数或者90%的相应时间是多少秒

收工:lol

pose_123 发表于 2009-6-22 09:32:10

受教~~:lol

ljonathan 发表于 2009-7-9 09:53:53

需要设计实验验证。。。

liuwei1987 发表于 2009-7-17 16:31:30

很经典的一个论题!!!:)

wower1985 发表于 2010-3-16 18:12:59

你比我早一步想到这个问题,呵呵,我也困惑中。

ljonathan 发表于 2010-8-2 20:29:56

回过头来看这个帖子,
应该是我现在明白了,
还是写多线程脚本中发觉的:
http://www.51testing.com/index.php?uid-202848-action-viewspace-itemid-217825

一个教训:

关于多线程中平均响应时间的计算方法,
应该是 分别计算每个线程的平均响应时间,然后求和之后取平均值。
而不是之前的简单的用 运行时间/总次数

但是,平均每秒处理的请求数,还是之前的,简单的       总次数/运行时间
也可以这样计算:   每个线程的平均每秒处理的请求数 求和

两个概念不是简单的取倒数关系,当然,单线程的时候可以,多线程时,就是错误的了。

如果还有错误,请赐教
呵呵,有点点高兴,终于把之前的疑惑弄明白了

lvzer 发表于 2010-8-3 15:20:55

受教~~~继续研究中!

tttrrryyy 发表于 2010-8-3 16:28:33

楼主理解是正确的,只是回顾老帖子,看到某些言论,真是搞笑了。
自己用LoadRunner测不准系统的性能,便认为别人也做不到,这算夜郎自大还是井底之蛙?

panyujie 发表于 2010-8-10 17:09:09

多组Group的平均事物响应时间和运行时间的关系该怎么计算

我在controller中设置了多组Group,
运行的最大用户数880个
每30秒增加44个用户
测试场景持续时间为:5分钟
运行结束后每30秒减少22个用户
跌代时间是五分钟

那么该怎样分析事务响应时间和场景运行时间呢。

ljonathan 发表于 2011-4-14 23:56:43

楼上的,问题没太弄明白,lr应该是算总账的

我想补充的是,在设计多线程脚本的时候,除了我提到的
还有另外一个简单的,之前有个同事用过:

多线程脚本_思路二则

线程脚本:

计算平均响应时间:

方法1:设定运行时间:
线程   运行时间 运行次数
线程1: 1s    2
线程1: 1s    4
线程1: 1s    2


time/次数   

1/10 0.1===>错误

(1/2 + 1/4 + 1/2) / 3 = 1.25/3 = 0.4   ===>正确



方法二:设定固定次数:

线程    运行次数运行时间
线程1: 10      2
线程1: 10      4
线程1: 10      2

time/次数
(2+4+2)/(3*10)

也可以按照上面的算法:

(2/10+4/10+2/10) / 3 = 结果

总结:第一种算法是通用的,第二种算法是特例。


http://www.51testing.com/?uid-202848-action-viewspace-itemid-221539

jiutianwow 发表于 2011-4-15 15:07:10

敬礼受教受教。
页: [1]
查看完整版本: 哪位高手解释下事务平均响应时间和场景运行总时间之间的关系,感觉有点解释不清