每一天都有新发现...

【转】并发和集合点

上一篇 / 下一篇  2012-12-17 00:06:34 / 个人分类:loadrunner

一、LoadRunner中的“集合点”

  在执行负载测试时,可能需要模拟系统上较重的用户负载。而通过LoadRunner中的Controller来模拟多个虚拟用户执行脚本时,每个脚本的运行步骤不一定是同步的。要达到模拟较重用户负载的效果,就需要尽量同步这些虚拟用户的步伐,即尽量让这些虚拟用户在同一时刻执行任务。那就要创建“集合点”。当某个Vuser到达该集合点时,将进行等待,知道参与该集合的全部Vuser都到达。简单的说,就是参与执行业务操作的用户先到的要等着慢的,等都到了后再进行下一步的工作

  1、如何设置“集合点”?

  可在Vuser脚本来指定“集合点”。在Vuser执行脚本并遇到集合点时,脚本将暂停执行,Vuser将等待Controller或控制台的允许以继续执行。Vuser从集合释放后,将执行脚本中的下一个任务。

  (注意:只能向Action部分添加集合,而不是init或end部分。)

  1)可在脚本录制过程中,点击“录制”工具栏上的“集合”按钮。将打开“集合”对话框。

  2)在“集合名”框中键入集合点的名称。点击“确定”接受该集合名称。VuGen会把lr_rendezvous语句插入到Vuser脚本。如下:

  Lr_rendezvous(“rendezvous1”);

  2、“集合点”的插入位置

  根据经验,“集合点”最好放在事务外面,或两个事务之间。因为根据LoadRunner中“集

  合点“的工作原理,如果把”集合点“放在事务中,”集合点“前的等待时间也会被统计到事务响应时间里。而在性能测试中,响应时间是很重要的一个指标之一,因此,如果把”集合点“放在事务里,最后的结果可能与实际情况有较大偏差。

  3、如何控制“集合点”?

  在场景中,多个脚本同时并发时,把所有集合点改为同一名称即可。

  二、并发

  “并发”顾名思义,就是同时操作。而这种操作可以是实际的执行功能,也可以只是“连接”(此时通常叫做“并发连接”)。从计算机工作原理的角度出发,“并发”也只是一个相对较短时间段内的概念,而从信息系统的角度出发,也是与的总的操作时间相比,相对较短的一时间段中的同时性。因此,“并发”与考察问题的粒度有关。

  三、“集合点”与“并发”

  通过上面两节的描述,我们应该能意识到,“集合点”与“并发”是有联系的,但并非必然的联系。

  有这样一种说法,设置“集合点”是为了确保“严格意义”的并发。“集合点”主要是通过工具的控制,确保一个严格的“同时”从前台提交到后台。可从微观上看,并不存在严格意义上并发。即便你通过设置“集合点”达到了50个用户同时向服务器提交请求的效果,经过网络传输、应用服务器(中间件)、数据库等层面的消耗,以及各服务器CPU处理队列的限制,都可能会导致在服务器段产生等待。因此,并没有“严格意义”上的并发。我们所需要做的,就是要根据不同的测试目的及测试策略,在一个可接受的考察粒度范围内取得一个最佳的平衡点,来模拟接近实际的“并发”。

  根据经验,根据测试目的的不同,如果测试目的不是“调优”或“故障定位”相关的,那就没有必要设置“集合点”。“集合点”在一般的性能测试中很少使用。


TAG:

引用 删除 yjq30604   /   2015-01-07 14:52:29
5
 

评分:0

我来说两句

Open Toolbar