“集合点”与“并发”的关系
作者:网络转载 发布时间:[ 2012/9/25 10:05:42 ] 推荐标签:
在做性能测试过程中,曾经遇到过如题两个概念理解的困惑。查了一些打印资料、逛了不少技术论坛,再加上自己在工作中的体会,从个人的角度描述一下自己对上述二概念的一点浅显的认识。
一、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处理队列的限制,都可能会导致在服务器段产生等待。因此,并没有“严格意义”上的并发。我们所需要做的,是要根据不同的测试目的及测试策略,在一个可接受的考察粒度范围内取得一个佳的平衡点,来模拟接近实际的“并发”。
根据经验,根据测试目的的不同,如果测试目的不是“调优”或“故障定位”相关的,那没有必要设置“集合点”。“集合点”在一般的性能测试中很少使用。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11