在LoadRunner里,有两个概念很容易被混淆:pacing和think time。相关书籍中很难查阅到对pacing的讲解。这两个名词该如何理解,如何应用呢?
它们都出现loadrunner VUGen的run-time settings里,是不同的概念。先引用帮助文档里的解释:
The pacing let you control the time between iterations. The pace tells the Vuser how long to wait between iterations of your actions。
Vuser think time emulates the time that a real user waits between actions. For example, when a user receives data from a server, the user may wait several seconds to review the data before responding. This delay is known as the think time.
为了更好的讲清楚,引入iteration的概念。Iteration,迭代。通过设置,可以指定虚拟用户在同一个Action中重复执行多次,每次重复称之为一个iteration。Iteration可以帮助我们模拟现实世界的重复场景。
Pacing,步调。可以通过设置两次迭代之间的间隔时间,来调整各个action之间的步调(或者称之为节奏)。从定义上来看,Pacing是和iteration绑定在一起的,可以认为是iteration pacing。
Think time,思考时间。可以通过设置思考时间,来模拟真实用户在操作过程中的等待时间。从定义上来看,think time是在iteration内部的某个action中各个步骤的间隔时间。
到这里,已经能看出两者之间的区别,但是容易混淆的。接下来通过一个例子来进一步说明,期望能够深入浅出。
淘宝购物车应用,假定每分钟有6000个在线用户浏览(Browser),共10台服务器。用户在浏览过程中,先打开购物车页面,花了1秒钟时间浏览整个页面,然后查看其中的某个宝贝。此时,在性能测试场景中(如果模拟真实场景的话),就会在两个步骤之间设置一个等待时间think time = 1 秒。如下图1-1所示:
图1-1
假设用户进行一次上述操作会消耗5秒钟的时间,即完成整个迭代需要5秒钟。如果用户不停顿,继续第二次重复操作,则同样耗费约5秒左右的时间。但是真实世界中肯定是有停顿的。一个真正的用户,做完一系列操作后,会间隔一段时间。假定用户停顿了5秒,再第二次重复操作,则一共耗费10秒钟时间。映射到 loadrunner中,就需要在一次iteration中,设置一个think time = 1秒,然后在两个iteration之间,设置一个pacing为5秒。如下图1-2所示:
图1-2
一个虚拟用户在1分钟内,就能完成6次的迭代,12次请求。而要达到有6000个用户的浏览量,我们需要6000/12 /10= 50个虚拟用户。
通过上面的例子,相信大家对pacing和think time已经有了相应的理解。至于在loadrunner中符合使用、怎样配置,则可以通过帮助文档来加深认识。在此不一一说明。
尽管性能测试的需求通常都是从客户端角度来定义的,比如“系统需要支撑100个并发用户”、“每分钟有6000个请求量”,但是压力应该以服务器为中心来看待。原因很简单,从loadrunenr端发送出去的请求,需要等待服务器端响应之后才能发送下一个请求。可以说,对于每个虚拟用户,它对服务器发送请求的频率取决于服务器对请求的处理时间。
如果需要模拟真实用户的操作,从而模拟服务器端的真实变动,think time和pacing是两个必不可少的设置项。
评论:
词馨:“讲解很清晰,pacing和think time一目了然。
从以上使用场景来看,pacing和think time都是可以模仿真实世界中的停顿。这是从客户端考虑的。
从服务器端考虑,这两个参数的设置将会更加复杂。
例如,我们需要衡量服务器处理一个请求的平均响应时间。考虑,服务器端能同时并发处理的请求数一定,当性能测试发送的每秒请求数超过它能处理的请求数后,再到达的请求将会在服务器系统中排队等待,这时,整个响应时间的计时已经开始,排队等待时间将会计入响应时间。所以,如果LR仍然持续发送请求,可能造成接下来的请求都在等待。这时,服务器每次处理的事务数在下降,平均响应时间在增大,造成了请求发送越快,处理越少越慢。
对于这种情况,从服务器端出发,来考虑设置请求发送的速度。”
悟石:“从服务器端来看,让每颗CPU都忙碌起来,是件好事。当压力超过CPU能承受范围时,认为是过载,等待队列会越来越长,load不断飙升。
但如果真实情况是存在瞬间超高压,中间会有停顿的话,服务器或许能撑得过去(风险很大)。对于复杂场景,这个停顿要靠pacing来完成。不过,pacing怎么设置才最合适,是需要研究用户行为才能定的。”
转载于此(http://www.51testing.com/html/36/n-170436.html)
分享到:
相关推荐
LoadRunner中Pacing和Think Time的理解和应用 在LoadRunner测试过程中,Pacing和Think Time是两个容易混淆的概念,但它们却是 LoadRunner VUGen 的run-time settings中的两个不同的概念。通过帮助文档里的解释,...
之前一直也用pacing值来调节TPS,一直觉得它和thinktime没啥区别.这次项目中,和同事就此展开了讨论,细细一研究发现pacing值门道还是很多的. 如下面三个图: 上图是pacing的三个选项,如果选第一项...
Run-time Setting是LoadRunner中控制虚拟用户行为的设置,包括RunLogic、Pacing、Think Time等。这些设置影响了虚拟用户的行为模式,如执行速率、暂停时间等,从而影响测试的负载模型。 总的来说,LoadRunner是性能...
思考时间(Think Time) 40 其他(Miscellances) 41 VuGen--增强功能 42 事务 42 参数化 43 内容检查 49 关联 50 集合点 53 Controller组件概述 55 设计场景思想 55 新建场景方式 56 场景类型 56 场景运行 59 执行...
- 根据需求调整“Think Time”(思考时间)和“Pace”(步调)等相关参数。 #### 五、Log记录功能及其配置 LoadRunner提供了一个强大的日志记录功能,可以帮助测试人员更好地追踪和诊断问题。 **启用方法:** - ...
总之,LoadRunner作为一款强大的性能测试工具,通过设置思考时间、Pacing和理解TPS等概念,可以帮助我们更准确地模拟用户行为,评估系统性能。同时,通过编写脚本和处理树型结构数据,我们可以实现复杂的业务场景...
4. 思考时间(think time)设置: - 选择重播思考时间,设置为10s,模拟用户浏览网页时的真实行为。 5. 修改组名和Vuser数量,如设置10个Vuser在本地运行。 6. 编辑场景计划,根据场景要求设置按场景计划,包括用户...
《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:...
理解并熟练运用这些LoadRunner的关键概念和技巧,不仅可以帮助我们解决日常遇到的问题,也能在面试中展现出深厚的专业知识,为职业生涯加分。在进行性能测试时,合理设定TPS目标,精确控制思考时间和Pacing,以及...
lr_think_time(3); tpresult_int = lrt_tpinitialize(LRT_END_OF_PARMS); lrt_abort_on_error(); data_0 = lrt_tpalloc("STRING", "", 1); /* Request STRING buffer 1 */ lrt_strcpy(data_0, sbuf_1); ...
Log是LoadRunner记录测试过程的手段,ThinkTime用于设置用户操作的停顿时间,这样更贴近真实用户使用系统时的行为模式。 Miscellaneous部分提到了Browser Emulation,即浏览器模拟。LoadRunner可以模拟不同的浏览器...
《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:...
《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:...
Think Time 是用户在各步骤之间停下来进行思考的时间,通过设置随即思考时间可以模拟不同熟练操作程度的用户;Speed Simulation 是使用不同网络连接(例如,调制解调器、 DSL 和电缆)的用户;Browser Emulation 是...
4. **Think Time**:模拟用户在操作之间的思考时间,使测试更接近真实环境。 5. **Miscellaneous**:包括浏览器仿真、网络设置、用户变量等其他配置。 关联(Correlation)在LoadRunner中是指处理脚本中动态变化的...
- 思考时间(Think Time):设置10s的思考时间,模拟用户实际操作的间隔。 - 更改组名和 Vuser 数量:例如,设置名为 "xzchinamobile_agent" 的组,包含10个 Vuser。 6. **编辑场景**: - 在场景设计界面,可以...
3.5.4 Think Time 3.5.5 Additional attributes 3.5.6 Miscellaneous 3.5.7 Speed Simulation 3.5.8 Browser Emulation 3.5.9 Preferences 3.5.10 Download Filters 3.5.11 Data Format Extensions 3.6 参数...
3.5.4 Think Time 3.5.5 Additional attributes 3.5.6 Miscellaneous 3.5.7 Speed Simulation 3.5.8 Browser Emulation 3.5.9 Preferences 3.5.10 Download Filters 3.5.11 Data Format Extensions 3.6 参数...
3.5.4 Think Time 3.5.5 Additional attributes 3.5.6 Miscellaneous 3.5.7 Speed Simulation 3.5.8 Browser Emulation 3.5.9 Preferences 3.5.10 Download Filters 3.5.11 Data Format Extensions 3.6 参数...