1  作用

通过让多用户在同一时间点上进行并发操作来测试系统的并发处理的能力

2  实现

通过集合点函数来实现。

注意:集合点经常和事务结合起来使用。集合点只能插入到Action部分,vuser_init

和 vuser_end 中不能插入集合点。所以,如果要模拟并发登录,那么必须把登录操作放到Action中

3  具体步骤

例子:模拟10个用户并发登录Web Tours

1、插入集合点函数

打开VuGen,光标定位在要插入Insert- >Rendezvous


 

填写集合点名称


说明:集合点的名称最好要有意义,能够清楚的说明该集合点完成的动作。

查看脚本(新增集合点函数rendezvous)

 

Action2()

{

lr_rendezvous("login"); //插入集合点

//提交登录表单

web_submit_data("login.pl",

"Action=http://127.0.0.1:1080/WebTours/login.pl",

"Method=POST",

"TargetFrame=",

"RecContentType=text/html",

"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",

"Snapshot=t10.inf",

"Mode=HTML",

ITEMDATA,

"Name=userSession", "Value=114160.918590522fiHcVfcpcfDfcDcpQVDf", ENDITEM,

"Name=username", "Value=jojo", ENDITEM,

"Name=password", "Value=bean", ENDITEM,

"Name=JSFormSubmit", "Value=off", ENDITEM,

"Name=login.x", "Value=45", ENDITEM,

"Name=login.y", "Value=3", ENDITEM,

LAST);

return 0;

}

当脚本在多用户运行的情况下,每次运行到这个函数都会检查一下集合点的策略来决定是等待还是继续运行

 

2、集合点设置

利用脚本创建场景,Controller中,Scenario->Rendezvous…

说明:仅当脚本中含有集合点函数时,才可以设置场景中的集合点。


 

说明:这里可以根据需要禁用/开启集合点,禁用或开启用户,可设置集合点策略

 

2.1、 策略设置

说明:

a)  Policy

满足后策略才释放虚拟用户

策略1:Release when N% of all Vusers arriver the rendezvous

是指占全部用户百分之N的用户都运行到了集合点函数才释放集合,然后让这些用户并发运行后面的脚本

策略2:Release when N% of all running Vusers arriver at the rendezvous

是指占所有正在运行用户百分之N的用户都运行到了集合点才释放集合,然后让这些用户并发运行后面的脚本。

策略3:Release when N Vusers arrive at the rendezvous

是指指定数量(N)的用户运行到了集合点才释放集合,然后让这些用户并发运行后面的脚本

b)  Timeout between Vusers N seconds(集合点超时)

超时时间是指虚拟用户之间的时间差,当出现两个虚拟用户到达集合点的时间差超过设定的超时时间时,所有在集合点处于等待状态中的用户将全部释放。

在 脚本运行时,每个虚拟用户到达集合点时都会去检查一下集合点的策略设置,如果不满足,那么就在集合状态等待,直到集合点策略满足后,才运行下一步操作。但 是可能存在前一个虚拟用户和后一个虚拟用户达到集合点的时间间隔非常长的情况,所以需要设置一个超时的时间,如果超过这个时间就不等待迟到的虚拟用户了

这里选择策略1,保存,设计场景,每5秒开启2个用户

查看查看运行到集合点的用户数

4  注意事项

1、集合点和事务

集合点应该放在事务外,如果事务内存在集合点,那么虚拟用户在集合点等待的过程也会被算入事务时间,导致早进入集合点的用户的响应时间有误。

2、集合点和Action。

集合点仅对Action section起作用。对init action或end action无效,无法设置集合点

3、集合点是分批次的(按指定数量一批一批的运行)

那么如果有10个用户,设置指定8个用户到达集合点才运行,那么前面8个到达集合点则释放该8个用户,后面到达集合点的用户也是等到满足8个用户才运行,等待超时除外。

loadrunder之脚本篇——集合点设置的更多相关文章

  1. loadrunner 脚本优化-集合点设置

    脚本优化-集合点设置 by:授客 QQ:1033553122 添加集合点(Insert->Rendezvous) 当一个集合点被插入,VuGen往Vuser脚本中插入一个lr_rendezvou ...

  2. Loadrunder之脚本篇——检查点

    VuGen判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的是HTTP状态为200 OK,那么VuGen就认为脚本正确地运行了,并且是运行通过的.而大多数系统出错时是不会返回错误页面 ...

  3. loadrunder之脚本篇——脚本基础知识和常用操作

    1)编码工具设置 自动补全输入Tools->General Options->Environment->Auto complete word 显示功能语法Tools->Genr ...

  4. loadrunder之脚本篇——定义全局变量

    如果参数是全局的,在脚本中的任何一个Action中都可以使用,变量一般是局部的,如果跨Action调用会出现未声明的错误. 打开Script视图中左侧Action列表中的globals.h文件,可定义 ...

  5. loadrunder之脚本篇——Run-time Settings之Pacing

      As soon as the previous iteration ends 前一个迭代一结束就尽可能快的开始新一轮的迭代   After the previous iteration ends ...

  6. loadrunder之脚本篇——接口传参为本地文件

    导言 前几天需要对公司一个专门很重要的接口进行压测,这个还不是重点,重点是传参为本地的图片!刚刚开始通过web_custom_request()函数来解决,可是脚本并不能通过!后面又百度不到答案,通过 ...

  7. Loadrunder之脚本篇——关联函数对话框详解

    Insert->New Step,打开Add Step对话框 选择函数web_reg_save_param,点击OK,打开关联函数设置窗口 说明: Parameter Name 此处设置存放参数 ...

  8. Loadrunder之脚本篇——关联

    关联的原理 关联也属于一钟特殊的参数化.一般参数化的参数来源于一个文件.一个定义的table.通过sql写的一个结果集等,但关联所获得的参数是服务器响应请求所返回的一个符合条件的.动态的值. 例子:常 ...

  9. Loadrunder之脚本篇——事务时间简介

    事务概念 事务是指用户在客户端做一种或多种业务所需要的操作集(actions),通过事务开始和结束函数可以标记完成该业务所需要的操作内容(脚本section).定义事务来衡量服务器的性能,例如,你可以 ...

随机推荐

  1. Servlet 发送电子邮件

    使用 Servlet 发送一封电子邮件是很简单的,但首先您必须在您的计算机上安装 JavaMail API 和 Java Activation Framework)JAF). 您可以从 Java 网站 ...

  2. python 装饰器 (多个参数的函数,带参数的装饰器)

    最简单的模板是这样的 #-*-coding:utf-8-*- def outer(func): def inner(): print 'before' func() print 'after' # r ...

  3. Wireshark使用注意事项

    一直在使用老板的Wireshark,因为4G网络的逐步开通,越来越须要新版Wireshark来解析一些数据包. 在更换了新Wireshark的1.11.3后发现原来能够解析Gb口数据的NSIP不见了 ...

  4. cocos2dx - 部署到android真机上错误整理

    利用Cgywin编译工具来将cocos2dx 在Android运行所需要的C++文件编译 1. ./build_native.sh(最后一把执行出错) please define NDK_ROOT i ...

  5. 汇编 DOS的中断调用 INT 21H

    DOS系统功能调用 这个汇编指令是用于提供DOS系统功能调用. 它是由DOS提供的一组实现特殊功能的子程序供程序猿在编写自己的程序时调用,以减轻编程的工作量. 分两种,re=view"> ...

  6. fzu2181(点的双连通分量+求奇环)

    求出每个点双连通分量,如果在一个点双连通分量中有奇环,则这个分量每个点都在一个奇环中.  关键是要知道怎么求点双连通分量以及点双连通的性质. fzu2181 http://acm.fzu.edu.cn ...

  7. Object类有哪些公用方法?

    Object是所有类的父类,任何类都默认继承Object. clone 保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedExce ...

  8. SharePoint服务器端对象模型 之 访问文件和文件夹(Part 4)

    (四)列表附件 列表的附件也是文件系统的一部分,它依附于普通列表的列表条目之上(文档库没有附件),它的操作在一些地方和文档库中文档的操作非常类似.   1.附件的读取 一个列表条目的附件可以使用SPL ...

  9. Ubuntu 16.04安装各种软件

    Ubuntu 16.04发布了,带来了很多新特性,同样也依然带着很多不习惯的东西,所以装完系统后还要进行一系列的优化. 1.删除libreoffice libreoffice虽然是开源的,但是Java ...

  10. 【22,23节】Django的GET和POST属性笔记

    COOKIES:一个标准的python字典对象,包含所有cookies,键和值都为字符串session:一个即能读又能写的类似字典对象,表示当前的会话,只有当django启用会话的支持时才可用 一键多 ...