51Testing软件测试论坛

标题: 请教:关于thinktime与“事务响应平均时间”的关系 [打印本页]

作者: zzy7999    时间: 2009-7-30 11:27
标题: 请教:关于thinktime与“事务响应平均时间”的关系
第一种场景:在设置LoadRunner场景时将LoadRunner的thinktime限制为1秒,运行100个vuser的并发,测试结果中显示事务响应平均时间(Trans Response time)为1.713秒。
第二种场景:在设置LoadRunner场景时将LoadRunner的thinktime限制为20秒,运行100个vuser的并发,测试结果中显示事务响应平均时间(Trans Response time)为9.438秒。
请问thinktime的时间和“事务响应平均时间”之间到底是什么关系啊?按常理来说应该是thinktime设置得越大,对被测系统的压力越小,事务响应时间越短啊。
是不是thinktime的时间也会累加到“平均事务响应时间”?如果真是这样那测试结果中计算的“事务响应平均时间”就不准确,是不是有哪个地方可以设置,在统计结果时忽略thinktime的时间(不是指设置场景时忽略thinktime)。
谢谢大家指导。
[attach]54552[/attach]
补充:该事物的脚本中只有一处thinktime,为lr_think_time(9)。

[ 本帖最后由 zzy7999 于 2009-7-30 12:02 编辑 ]
作者: ffwithvv    时间: 2009-7-30 11:50
不好意思,我也不是很懂,我能回答的就是think time确实是会累加到平均响应时间里去的,如果你要忽略think time的话,就是上面的“ignore think time”。 至于你说“如果真是这样那测试结果中计算的“事务响应平均时间”就不准确”,其实加入think time目的是能真实的反应用户的操作,从而模拟真实用户的操作。其实你用某一事物的平均响应时间减去处理该事物的think time时间,得到的就是所谓的系统响应时间。不知道我说的对不对,还请高手过来指教

[ 本帖最后由 ffwithvv 于 2009-7-30 12:10 编辑 ]
作者: ffwithvv    时间: 2009-7-30 12:05
我想说一下响应时间的问题,响应时间=网络响应时间+应用程序响应时间,分解一下就是客户端发出请求,然后经过网络到web server,然后将web server将数据库的请求传给database server,最后database server再回传给web server,然后通过网络,最后展现在用户的客户端。
不对之处,还请指教
作者: zzy7999    时间: 2009-7-30 12:06
原帖由 ffwithvv 于 2009-7-30 11:50 发表
不好意思,我也不是很懂,我能回答的就是think time确实是会累加到平均响应时间里去的,如果你要忽略think time的话,就是上面的“ignore think time”。 至于你说“如果真是这样那测试结果中计算的“事务响应平均时 ...


谢谢你及时的回复 ,我发表一下我不同的观点:
1、我强调了是不忽略thinktime的情况下考虑该问题,因为忽略thinktime就无法真实模拟用户操作了,那个并发度就会很大,没有参考价值。
2、如果单独去减的话是不对的,因为我设置的thinktime是20秒,事务平均响应时间是9.438秒,如果减的话就变成负数了。
作者: zzy7999    时间: 2009-7-30 12:09
原帖由 ffwithvv 于 2009-7-30 12:05 发表
我想说一下响应时间的问题,响应时间=网络响应时间+应用程序响应时间,分解一下就是客户端发出请求,然后经过网络到web server,然后将web server将数据库的请求传给database server,最后database server再回传给we ...

谢谢你的回复,我要讨论的不是响应时间的概念。
响应时间我认为是:客户端响应时间+客户端到服务器的网络时间+服务器的处理时间(包括应用服务器、中间件服务器、数据库服务器等)+服务器到客户端的网络时间+客户端页面的显示时间。
作者: ffwithvv    时间: 2009-7-30 12:10
前面没看到楼主最后的补充“该事物的脚本中只有一处thinktime,为lr_think_time(9)。”那这样一来,就验证了我前面说的“用某一事物的平均响应时间减去处理该事物的think time时间,得到的就是所谓的系统响应时间”
第一个例子来说:事务响应平均时间(Trans Response time)为1.713秒—thinktime限制1秒=0.713秒
第二个例子来说:事务响应平均时间(Trans Response time)为9.438秒—thinktime9秒=0.438秒
这样一减下来,结果就很接近了,不知道说了这么多,楼主明白否,呵呵

[ 本帖最后由 ffwithvv 于 2009-7-30 12:24 编辑 ]
作者: zzy7999    时间: 2009-7-30 12:12
原帖由 ffwithvv 于 2009-7-30 12:10 发表
前面没看到楼主最后的补充“该事物的脚本中只有一处thinktime,为lr_think_time(9)。”那这样一来,就验证了我前面说的“用某一事物的平均响应时间减去处理该事物的think time时间,得到的就是所谓的系统响应时间”
...

不对,第二个场景我已经把thinktime限制为20秒了,即便脚本中是9秒,thinktime也会强制按20秒执行。
作者: ffwithvv    时间: 2009-7-30 12:15
原帖由 zzy7999 于 2009-7-30 12:06 发表


谢谢你及时的回复 ,我发表一下我不同的观点:
1、我强调了是不忽略thinktime的情况下考虑该问题,因为忽略thinktime就无法真实模拟用户操作了,那个并发度就会很大,没有参考价值。
2、如果单独去减 ...


楼主,你第2个例子里面,设置的是limit time to 20,见你的贴图中红圈的部分。这个不是说你设置了20秒的响应时间,而是说,响应时间不能超过20秒。举例来说,如果你的脚步里出现一个地方响应时间为21秒,那么在执行的时候,系统会让响应时间变为20秒。可是你第2个例子中的响应时间只有9秒,并没有超过20秒的极限,所以系统还是默认响应时间为9秒,不知道你明白否
作者: ffwithvv    时间: 2009-7-30 12:20
如果你想设置think time为20秒的话,建议选择“multiply recorded think time by”,然后输入“2”,意思就是按照你原来的think time放大2倍,即9秒X2=18秒
作者: zzy7999    时间: 2009-7-30 13:25
原帖由 ffwithvv 于 2009-7-30 12:15 发表


楼主,你第2个例子里面,设置的是limit time to 20,见你的贴图中红圈的部分。这个不是说你设置了20秒的响应时间,而是说,响应时间不能超过20秒。举例来说,如果你的脚步里出现一个地方响应时间为21秒,那么在执 ...

经验证,此为正解,问题的关键是我对“limit time to”的理解有误,谢谢了
但是有没有办法在结果分析报告中自动去除thinktime?如果有多个事物,每个事物的脚本中又有多个thinktime的话,那还要人为统计,很麻烦啊。

[ 本帖最后由 zzy7999 于 2009-7-30 13:28 编辑 ]
作者: ffwithvv    时间: 2009-7-30 14:53
自动去除think time 不就是ignore think time吗
作者: zzy7999    时间: 2009-7-30 15:50
原帖由 ffwithvv 于 2009-7-30 14:53 发表
自动去除think time 不就是ignore think time吗

如果ignore thinktime了会对被测系统有很大的压力,不能反映真实情况,所以在做性能测试时都会加上thinktime,但是加上thinktime以后,响应时间就会增加,所以在结果中又要去除thinktime。
作者: ffwithvv    时间: 2009-7-31 16:14
你的意思是,压测的时候要有think time,但结果里又不需要think time?这个我就实在无能为力了,呵呵
作者: lijian422202    时间: 2009-7-31 17:56
结果中也可以去掉,在分析器里有个filter,在功能栏是个漏斗图表,里面可以忽律掉thinktime
作者: kuangquanshui    时间: 2009-8-1 12:54
你的设置是对时间的一个范围的确定  并不是制定了具体的时间  看来你的理解真的有点错误  继续努力把
作者: zzy7999    时间: 2009-8-7 18:23
原帖由 lijian422202 于 2009-7-31 17:56 发表
结果中也可以去掉,在分析器里有个filter,在功能栏是个漏斗图表,里面可以忽律掉thinktime

这个是我需要的结果,谢谢了
作者: qingyu032400    时间: 2009-8-10 13:51
好帖~顶!!学习了.
作者: harvey_xu1981    时间: 2009-8-10 14:47
又学了新东西
谢谢啦~~
作者: wu52wen    时间: 2009-8-12 14:33
原帖由 lijian422202 于 2009-7-31 17:56 发表
结果中也可以去掉,在分析器里有个filter,在功能栏是个漏斗图表,里面可以忽律掉thinktime


我设置了一下,发现响应时间并没有变化,我的测试场景中没有忽略思考时间,怎么会这样!
希望高手指教
作者: hugh007    时间: 2009-8-13 11:10
好贴啊  又学习了
作者: hugh007    时间: 2009-8-13 11:41
我想请教一下
如果脚本中设置think的时间为10s
选择random persantage of recorded think time 50%-150%
哪么think时间是(10*50%+10*150%)/2=10s吗?
作者: stevenzhu2000    时间: 2009-8-14 09:26
This refers to the whole script transaction time if you do not add any transaction in your script and think_time is added to transaction time.
If you want to know the transaction time of specified page or postback you should add begin_transaction and end_transaction for the specified page or postback and do not include think_time between begin_transaction and end_transaction
作者: yours-123    时间: 2009-8-14 14:55
标题: 回复 21# 的帖子
这个应该是 5s-15s之间的随机数。
作者: sogohu    时间: 2009-8-16 03:08
我个人认为

当你脚本完成之后事务响应时间TPS是不会变的。
你说的两次TPS改变了说明把思考时间放进来事务里,在做分析时应该忽略思考时间。

思考时间是在客户机上操作消耗的时间,与响应时间没有关系。
你的脚本没处理好。
作者: yangzhi984    时间: 2009-8-16 20:47
正在学习中
作者: alexanty    时间: 2009-9-3 23:43

作者: louzhi    时间: 2009-10-19 11:17
标题: 事务外定义thinktime
事务外定义thinktime:注意,不要将Think Time插入到你定义的事务当中,这样你测试出来的事物时间就不会又thinktime;否则,测出的事务时间需要减去Think Time的时间呦
作者: cjp110212    时间: 2010-6-30 15:59
嗯,不错,正是我需要的
作者: yuansiwen    时间: 2010-7-21 15:45
标题: 事务外定义thinktime
说的对 应放到事务的外面。
作者: m4ster    时间: 2011-3-23 10:38
这个帖子有用。
作者: 冰艳血魔    时间: 2012-5-18 16:31
学习了!
作者: yuanyuan_wo    时间: 2012-6-13 12:03
我设置了一下,发现响应时间并没有变化,我的测试场景中没有忽略思考时间,怎么会这样!
希望高手指教
wu52wen 发表于 2009-8-12 14:33



    请问楼主这个问题是怎么解决的呢?可否分享一下
作者: shanfeng1419    时间: 2012-6-13 14:10
讨论的很好,学习
作者: 雪梨1030    时间: 2012-7-16 14:34
围观者也学习了
作者: LCHLynn    时间: 2012-9-5 11:53
多谢楼主及各位的经验分享,有幸学习了~~




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2