LoadRunner录制:集合点

时间:2022-12-22 12:44:46

背景

LoadRunner 执行过程中,有的user 跑的快,有的跑的慢。就导致user1可能还在执行 登录操作呢,user2都已经开始执行查询操作了。

但是在进行负载测试时 ,我们又需要让很多用户同时执行一个任务。比如我这时候需要让30个用户同时开始查询。那我们就需要在查询操作前面添加一个集合点。意思就是我需要30个用户在这个地方集合,然后同时释放进行查询操作。

这时候第一个用户执行到集合点的时候,并不会继续进行查询操作,而是等待其他用户到达。等到30个用户都到达这里的时候,再一起执行查询操作。

添加方法

1. 在要添加集合点的地方,右键 –> Insert –> Rendezvous。

2. 输入集合点名称,比如“登录”。点击OK。

lr_rendezvous("登录");

设置集合点策略

打开Controller,导入添加了集合点的脚本。

点击 Scenario –> Rendezvous ,打开 Rendezvous Information 弹出框。

LoadRunner录制:集合点

Rendezvous:这里会列出当前场景中所有脚本中的集合点名称。

Scripts: 选中某个结合点名称之后,这里列出含有该集合点的脚本。

Vusers:这里列出所有的用户。这里的用户数和Scenario Groups里面该脚本设置的Quantity是一致的。

Disable Rendezvous:就是把某个集合点给Disable。

Policy:这里有3种集合点释放策略。下面的x、y、z可以随意更改。

  • 方式一:当 x% 的所有用户到达集合点时释放。比如一共10个用户,这里x是30%,那么只要3个用户到达该集合点就可以释放。
  • 方式二:当 x% 的所有running状态的用户到达集合点时释放。用户除了running状态还有其他状态,比如说down、Pending之类的。这里假设一共有10个用户,有5个是running状态的,这里x是20%,那么只要1个用户到达该集合点就可以释放。
  • 方式三:当 y个用户到达结合点时释放
  • 超时设置:就是设定集合的超时时间。假设这里设置30秒,然后第N个用户到达集合点了,等待30秒,第N+1个用户还没到达,那么Controller会从集合点释放所有的用户。注意的是每个用户到达都会check这个超时时间,一旦30秒之内没有第二个用户到达,集合点就会释放。
  • LoadRunner录制:集合点

Disable VUser: 让某个用户不参与该集合点。

Status Inforamtion:可以实时反馈该集合点的情况。

  • Current Status:当前有多少虚拟用户到达集合点 of 该集合点相关的虚拟用户一共是多少。
  • Time:虚拟用户在当前集合点被释放的时间。
  • Reason:虚拟用户在当前集合点被释放的原因。一般都是 Timeout 或者 Arrived。

 

运行场景时候,我们可以在Scenario groups 里面查看集合点用户情况,也可以点击Vusers 按钮查看详细的用户情况。

LoadRunner录制:集合点

 

注意事项

1. 集合点设置灰色不可点击的情况

如果场景中的脚本不含有集合点,那么 Scenario –> Rendezvous  按钮是灰色不可点击的。

如果场景中的脚本含有集合点,同时 Scenario –> Rendezvous  按钮还是灰色不可点击,那么有可能是在打开New Scenario的时候,选中了 Use the Percentage Mode 。解决方式就是重新打开同时不要勾上Use the Percentage Mode ,或者选择 Scenario –> Convert Scenario to the Vuser Group Mode .

LoadRunner录制:集合点

2. 集合点应该放在事务外。

如果事务内存在集合点,那么虚拟用户在集合点等待的时间也会被算入事务时间,导致早进入集合点的虚拟用户的事务时间过长。

3. 集合点仅对Action起作用。 在vuser_init 以及 vuser_end 里面无法插入检查点。

4. 集合点是分批次的。如果有100个用户,设置指定70个用户达到集合点才释放。那么前面70个到达集合点则会释放该70个,后边到达集合点的用户要等到满足70个才会释放。