“Think Time”顾名思义-思考时间。它效仿真实用户在实际操作过程中的等待时间。也就是说,实际用户在浏览网页,操作B/S系统的时候,不可能像机器一样不停的点啊点,在操作和操作之间会有一定的间隔。如:你浏览网页,打开一个或几个网页后,你会阅读,读过之后才会继续打开新网页。你阅读时所消耗的时间就是Think Time。对于服务器来说,这段时间是没有压力的。
我们做性能测试,很多时候就要模拟这种状态。例如:某系统,要求满足100用户同时在线操作,响应时间在5秒。如果不设置Think Time,我觉得,你的测试是失败的。大家想想为什么?答案将在文章的结尾揭晓。
下面我来讲解一下LR中Think Time的设置。
设置Think Time有两种方式,一种是使用Record think time在录制过程中根据实际等待时间自动的写入脚本。另一种是在脚本录制结束后手动加入到脚本中。接下来我们详细介绍。
自动:
位置及操作:Recording Option-Advanced:勾上Record think time,这样在你录制的时候,Think Time就会自动添加入你的脚本。需要注意的是,后面还有一项Think time threshold,它的作用是定义你所要录制的Think Time的最小时间。举个例子,如果你把这个值设置为5秒,那么如果录制过程中等待的时间小于5秒,那么就不会在脚本中记录这个Think Time。
手动:
位置及操作:脚本中任何你想要插入的地方。注意,不要将Think Time插入到你定义的事务当中,否则,测出的事务时间需要减去Think Time的时间呦。操作:在你想要插入Think Time的地方,右键,Insert-New Step在Time To Think () second在空中填写你为想要设置的时间。也可以在脚本中直接写函数lr_think_time();
添加好后,我们在Run-time Settings中设置执行的策略。
位置:Run-time Settings-Think Time。进入后,我们会看到两个选项。Ignore think time:忽略think time,也就是即使你添加了think time,脚本执行的时候也不会理睬,忽略不执行。Replay the think time:下面还有3个子项。As recorded:按照录制的执行。不用多说。Multiply recorded think time by:这就是我录制的think time乘一个系数。如,你录制的think time是4秒,在这里设置2,最后执行时就会按4秒×2=8秒来执行。如果你想要执行2秒,就在这里填0.5。Use random percentage of the recorded think time:这里随机设置一个百分比,并规定上下限。如,录制的think time为4秒。Min为50%,Max为200%。那么执行的时候它就会从2秒到8秒内随机取一个数来执行。Limit think time to:为think time设置一个上限,不管上面的如何设置,执行的时候,取值都不会操过这个上限。
讲到这里,think time的设置大家应该很明白了。不知道让大家思考的问题是否想通了。需求说的是100用户同时在线操作,注意,是在线!大家想想,100人在线肯定有人在操作,也有人只是在线,没有对服务器发出任何请求。如果不设置think time,相当于100人并发操作,每个人都不停的向服务器发送请求,这比需求的压力可是大很多的呦~
文章来源于领测软件测试网 https://www.ltesting.net/