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. ubuntu 16.04菜单栏不显示

    解决办法: restart unity-pannel-service

  2. JavaScript 对大小写敏感。

    JavaScript 对大小写是敏感的. 当编写 JavaScript 语句时,请留意是否关闭大小写切换键. 函数 getElementById 与 getElementbyID 是不同的. 同样,变 ...

  3. JavaScript 与 Java 是两种完全不同的语言,无论在概念还是设计上。

    JavaScript 与 Java 是两种完全不同的语言,无论在概念还是设计上. Java(由 Sun 发明)是更复杂的编程语言. ECMA-262 是 JavaScript 标准的官方名称. Jav ...

  4. 使用Salt-ssh部署Salt-minion之源码安装(二)

    二.源码安装篇 使用salt-ssh功能要求客户端系统python版本2.6+ 1.salt-minion端环境: 系统:SUSE SP3 64bit python版本:2.6.6 RPM包:pcre ...

  5. android中文字斜着显示

    /** * 自定义一个Textview * * @author Administrator * */ public class MyTextView extends TextView { public ...

  6. HDU2602Bone Collector 简单0-1背包

    Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  7. java中==和equals区别

    主要是使用String时候的区别! 一.java当中的数据类型和“==”的含义 基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,bool ...

  8. 自然语言处理(NLP)资源

    1.HMM学习最佳范例全文文档,百度网盘链接: http://pan.baidu.com/s/1pJoMA2B 密码: f7az 2.无约束最优化全文文档 -by @朱鉴 ,百度网盘链接:链接:htt ...

  9. TLE之前,没有一个节点叫失败!!!

    我想我十八年来记忆最深刻的夜晚,大概便是在吉林大学燥热的宿舍里,穿着橘黄色的短袖,努力咽下大口大口的雪碧.那天晚上我仰躺在吉大热得几乎不能入眠的床板上,一动不动,看夏夜里打不尽的蚊子在惨白的天花板下飞 ...

  10. 项目中调用ExcelCom组件时的配置流程

    异常提示如下:         Microsoft Office Excel 不能访问文件“*.xls”. 可能的原因有:        1 文件名称或路径不存在.       2 文件正被其他程序使 ...