LoadRunner 技巧之 集合点设置

Loadrunner 技巧已经整理4篇了,你个一定疑问,这些知识点,网上随处可见。确实,由于长时间没有使用这个工具,造成我的一些概念开始在大脑中模糊,我只是用这种方式来温习。

----------------------

在loadrunner的虚拟用户中,术语concurrent(并发)和simultaneous(同时)存在一些区别,concurrent 是指虚拟场景中参于运行的虚拟用户。而simultaneous与集合点(rendzvous point)关系更密切,是指在同一时刻一起执行某个任务的虚拟用户。

我们来想象一个场景,10名运动员参加长跑比赛,出发点同时起跑,他们是并排奔跑的;跑了N圈之后,因为有体能更强的,有体能稍弱的,他们的队形并排变成了前后。几乎一个跑道就可以供应他们的奔跑(运行),那么其余的9条跑道就是空闲的。

为了充分的利用跑道,可以将跑道的起点设置一个集合点,当所有运动员跑完一圈后在起跑点集合,然后再同时起跑。

运动员可以看作是虚拟用户,跑道可以看作是系统资源。设置集合点可以模式更加真实的并发请求,从而增加对系统的负载。

下面录制一个登录触摸屏版139邮箱的脚本。录制步骤:

1、打开登录页面

2、插入集合点

3、输入用户名密码,点击登录按钮

4、登录页面加载完成,录制结束

脚本添加集合点                                                                    

当我们在不熟悉脚本的情况下,可以通过世录制操作面板来添加集合点。

如果你非常熟悉每一段脚本代码的作用,可以在脚本中添加:lr_rendezvous 集合点函数。

录制代码如下:

Action()
{

web_url("wapmail.10086.cn",
        "URL=http://wapmail.10086.cn/",
        "Resource=0",
       
"RecContentType=text/html",
        "Referer=",
        "Snapshot=t19.inf",
        "Mode=HTML",
        EXTRARES,
        "Url=http://wapmail.10086.cn:8000/img/p/logo.jpg",
ENDITEM,
        "Url=/favicon.ico",
"Referer=", ENDITEM,
        LAST);

web_custom_request("urs.asmx",
        "URL=https://urs.microsoft.com/urs.asmx?MSURS-Client-Key=FcIacsb4XHR0aOJzGG/quQ%3d%3d&MSURS-Patented-Lock=NGkcbdtnuEs%3d",
        "Method=POST",
        "Resource=0",
       
"RecContentType=text/xml",
        "Referer=",
        "Snapshot=t20.inf",
        "Mode=HTML",
        "EncType=text/xml;
charset=utf-8",
        "Body=<RepLookup
v=\"3\"><G>ED8654D5-B9F0-4DD9-B3E8-F8F560086FDF</G><O>F03F2D77-79E1-4DEC-BBF8-81A5C0790160</O><D>9.0.8110.0</D><C>9.00.8112.16421</C><OS>6.1.7601.1.0</OS><I>9.0.8112.16421</I><L>zh-CN</L><R><Rq><URL>aHR0cDovL3dhcG1haWwuMTAwODYuY24v</URL><O>POST</O><T>TOP</T><HIP>218.204.255.90</HIP></Rq><Rq><URL>aHR0cDovL3dhcG1haWwuMTAwODYuY24vaW5kZXguaHRt</URL><O>POST</O><T>ACTION</T><HIP>218.204.255.90</HIP></Rq></R></RepLookup>",
        LAST);

web_custom_request("urs.asmx_2",
        "URL=https://urs.microsoft.com/urs.asmx?MSURS-Client-Key=C84C0w6qif5yiuTi%2bfaoMg%3d%3d&MSURS-Patented-Lock=EQjsDl4IFSQ%3d",
        "Method=POST",
        "Resource=0",
       
"RecContentType=text/xml",
        "Referer=",
        "Snapshot=t21.inf",
        "Mode=HTML",
        "EncType=text/xml;
charset=utf-8",
        "Body=<RepLookup
v=\"3\"><G>ED8654D5-B9F0-4DD9-B3E8-F8F560086FDF</G><O>F03F2D77-79E1-4DEC-BBF8-81A5C0790160</O><D>9.0.8110.0</D><C>9.00.8112.16421</C><OS>6.1.7601.1.0</OS><I>9.0.8112.16421</I><L>zh-CN</L><R><Rq><URL>aHR0cDovL3dhcG1haWwuMTAwODYuY24v</URL><O>PRE</O><T>TOP</T><HIP>218.204.255.90</HIP></Rq></R></RepLookup>",
        LAST);

lr_rendezvous("集合点")  //添加集合点

lr_start_transaction("登陆"); 
//添加事务

web_submit_data("index.htm",
        "Action=http://wapmail.10086.cn/index.htm",
        "Method=POST",
        "Referer=http://wapmail.10086.cn/",
        "Mode=HTML",
        ITEMDATA,
        "Name=ur",
"Value=fnngj", ENDITEM,
        "Name=pw",
"Value=heng198876", ENDITEM,
        "Name=apc",
"Value=0", ENDITEM,
        "Name=_swv",
"Value=5", ENDITEM,
        "Name=a",
"Value=3,5 ", ENDITEM,
        "Name=_fv",
"Value=3", ENDITEM,
        "Name=clt",
"Value=5", ENDITEM,
        LAST);

web_submit_data("index.htm_2",
        "Action=http://wapmail.10086.cn/index.htm",
        "Method=POST",
       
"RecContentType=text/html",
        "Referer=http://wapmail.10086.cn/",
        "Snapshot=t22.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=ur",
"Value=XXXXX", ENDITEM,   //登陆用户名
        "Name=pw",
"Value=ooooo", ENDITEM, //登陆密码
        "Name=apc",
"Value=0", ENDITEM,
        "Name=_swv",
"Value=5", ENDITEM,
        "Name=a",
"Value=3,5 ", ENDITEM,
        "Name=_fv",
"Value=3", ENDITEM,
        "Name=clt",
"Value=5", ENDITEM,
        LAST);

web_custom_request("handler",
        "URL=http://m.mail.10086.cn/wp1/w3/handler",
        "Method=POST",
        "Resource=0",
       
"RecContentType=text/html",
        "Referer=http://m.mail.10086.cn/bv1/home.html?mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&logintype=0&cv=3&swv=5&cli=5",
        "Snapshot=t23.inf",
        "Mode=HTML",
       
"EncType=application/x-www-form-urlencoded;charset=UTF-8",
        "Body=&mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&vid=&__randomNumber=1362403651558",
        EXTRARES,
       
"Url=/bv1/css/public.css?vn=288", "Referer=http://m.mail.10086.cn/bv1/home.html?mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&logintype=0&cv=3&swv=5&cli=5",
ENDITEM,
       
"Url=/bv1/js/home.js?vn=288", "Referer=http://m.mail.10086.cn/bv1/home.html?mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&logintype=0&cv=3&swv=5&cli=5",
ENDITEM,
        LAST);

web_custom_request("costanalysis",
        "URL=http://m.mail.10086.cn/wp1/w3/costanalysis",
        "Method=POST",
        "Resource=0",
       
"RecContentType=text/html",
        "Referer=http://m.mail.10086.cn/bv1/home.html?mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&logintype=0&cv=3&swv=5&cli=5",
        "Snapshot=t24.inf",
        "Mode=HTML",
        "EncType=application/x-www-form-urlencoded;charset=UTF-8",
       
"Body=&mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&vid=&cmd=999&d=478&b=1&t=710&body=2&r=5&ajaxInitTime=419&ajaxCostTime=285&ajaxBeginTime=0&downBeginTime=156&initBeginTime=704&logintime=5100&homejstime=2&homeutiljstime=2&ajaxSendTime=1362403651558&redirectTime=-1&__randomNumber=1362403652268",
        EXTRARES,
       
"Url=/bv1/img/global_24.png", "Referer=http://m.mail.10086.cn/bv1/home.html?mo=U0j5GuvVaLG3Xz0qMibbQok8g34_OABo&vn=288&logintype=0&cv=3&swv=5&cli=5",
ENDITEM,
        "Url=/favicon.ico",
"Referer=", ENDITEM,
        LAST);

web_custom_request("urs.asmx_3",
        "URL=https://urs.microsoft.com/urs.asmx?MSURS-Client-Key=maVKmMoyQiei4%2bdFLSDDAA%3d%3d&MSURS-Patented-Lock=HitWNt%2b1Bns%3d",
        "Method=POST",
        "Resource=0",
       
"RecContentType=text/xml",
        "Referer=",
        "Snapshot=t25.inf",
        "Mode=HTML",
        "EncType=text/xml;
charset=utf-8",
        "Body=<RepLookup
v=\"3\"><G>ED8654D5-B9F0-4DD9-B3E8-F8F560086FDF</G><O>F03F2D77-79E1-4DEC-BBF8-81A5C0790160</O><D>9.0.8110.0</D><C>9.00.8112.16421</C><OS>6.1.7601.1.0</OS><I>9.0.8112.16421</I><L>zh-CN</L><R><Rq><URL>aHR0cDovL20ubWFpbC4xMDA4Ni5jbi9idjEvaG9tZS5odG1sP21vPVUwajVHdXZWYUxHM1h6MHFNaWJiUW9rOGczNF9PQUJvJnZuPTI4OCZsb2dpbnR5cGU9MCZjdj0zJnN3dj01JmNsaT01</URL><O>PRE</O><T>TOP</T><HIP>113.108.212.38</HIP></Rq></R></RepLookup>",
        LAST);

web_custom_request("urs.asmx_4",
        "URL=https://urs.microsoft.com/urs.asmx?MSURS-Client-Key=r/4pztMEzQOon4ZLeymWxw%3d%3d&MSURS-Patented-Lock=a7q4TZRzKXk%3d",
        "Method=POST",
        "Resource=0",
        "RecContentType=text/xml",
        "Referer=",
        "Snapshot=t26.inf",
        "Mode=HTML",
        "EncType=text/xml;
charset=utf-8",
        "Body=<RepLookup
v=\"3\"><G>ED8654D5-B9F0-4DD9-B3E8-F8F560086FDF</G><O>F03F2D77-79E1-4DEC-BBF8-81A5C0790160</O><D>9.0.8110.0</D><C>9.00.8112.16421</C><OS>6.1.7601.1.0</OS><I>9.0.8112.16421</I><L>zh-CN</L><R><Rq><URL>aHR0cDovL20ubWFpbC4xMDA4Ni5jbi9idjEvaG9tZS5odG1sP21vPVUwajVHdXZWYUxHM1h6MHFNaWJiUW9rOGczNF9PQUJvJnZuPTI4OCZsb2dpbnR5cGU9MCZjdj0zJnN3dj01JmNsaT01</URL><O>POST</O><T>TOP</T><HIP>113.108.212.38</HIP></Rq></R></RepLookup>",
        LAST);

lr_end_transaction("登陆",LR_AUTO);  //登录事物结束

return 0;
}

控制器中设置集合点策略
                     
                     
          

我们在Virtual User Generator 中回放脚本无法体现集合点的作用。集合点是在多用户并发运行的时候才能起作用。所以,我们需要把脚本导入到Controller 中进行进一步的设置。

1、打开Controller (控制器),导入录制的脚本。

2、菜单栏 Scenario ---> Rendezvous 打开集合点设置界面

我们可以看到Vusers 列表框里有10个集合点(1~10),这里的数量和我们设置的虚拟用户数一致。

我们可以点击选中某个集合点,点击“Disable VUser” 按钮,使其不参与集合点。(某班级早晨集合跑步,A同学肚子痛,经过老师的允许不参与早晨的集合跑步。)

点击“Policy...”来设置集合点的策略:

下面来看看这三种策略的含义

Release when :当所有虚拟用户中的x % 到达集合点进释放,即仅当指定百分比的虚拟用户到达集合点时,才释放虚拟用户。

注意:此选项将会干扰场景的计划。如果选择此选项,场景将不按计划运行。

Release when :当所有正在运行的虚拟用户中的x %到达集合点时释放,即仅当场景中指定百分比的、正在运行的虚拟用户到达集合点时,才释放虚拟用户。

还有不在运行的虚拟用户? 假如,设置为1分钟启动一个用户,当然会存在因为用户还没启动,所以无法参与集合点。

Release when : 当x 个虚拟用户到达集合点时释放,即仅当指定数量的虚拟用户到达集合点时,才释放虚拟用户。

这个很好理解,当我用百分比不太好衡量集合点的虚拟用户数,当然可以设置具体的用户数。

Timeout between Vusers (虚拟用户之间的超时)框中输入一个超时值。

假如设置了集合10用户并发,结果9个用户已经集合到位,还剩1个虚拟用户,左等右等就是等不来。那总不能一直等下去吧。设定了个时间,假如30秒还不来,那就不管它了。

超时的时长默认是30秒,我们可以根据具体的被测应用进行调整。

时间: 2024-10-26 14:16:10

LoadRunner 技巧之 集合点设置的相关文章

LoadRunner 技巧之 思考时间设置

用户访问某个网站或软件,一般不会不停地做个各种操作,例如一次查询,用户需要时间查看查询的结果是否是自己想要的.例如一次订单提交,用户需要时间核对自己填写的信息是否正确等. 也就是说用户在做某些操作时,是会有停留时间的,我把这个时间叫思考时间.但利用代码去执行的时候是没有时间的,当然,脚本运行本身是需要时间的,但比起人的思考时间要小很多.这也是我们为什么要用软件来代替人的某些工作. 但有时候,我们在做性能测试时,为了更真实的模拟用户的操作,需要给代码加入思考时间.来看看在loadrunner是如何

Loadrunner ---集合点设置

测试场景,实现用户登录的200并发: 1.录制登录退出脚本,且登录退出放aciton中 2.在登录的地方设置集合点 设置集合点有如下4中方式: 1)在要插入集合点的地方,右击鼠标按如下图操作: 弹出如下界面,输入集合点名称: 2)自己输入集合点函数 3)通过New step插入集合点 弹出如下界面,输入集合点函数: 弹出如下界面输入集合点名称: 4)录制脚本的时候在需要设置集合点 3.打开Controller (控制器),导入录制的脚本 4.菜单栏 Scenario ---> Rendezvou

loadrunner controller:集合点策略

集合点只有在多用户并发运行的时候才能体现它的作用. Scenario ---> Rendezvous 打开集合点设置界面,如下图所示: 我们可以看到Vusers 列表框里有两个用户,这与我们设置的虚拟用户数一至,可以通过"Enable VUser" 来决定某个用户是否参与集合点: 在Rendezvous列表框可以看到我们的集合点,这里脚本里我只设置了一个集合点login,同样,我们可以通过"disable Rendezvous"可让集合点不起作用. 下面我们点

Linux小技巧之man pages设置高亮颜色

默认的man pages只有一种颜色,有些文字是进行加粗的. 只需执行以下命令,即可. cat <<\EOF >> /etc/bashrc man() { env \ LESS_TERMCAP_mb=$(printf   "\e[1;31m") \ LESS_TERMCAP_md=$(printf   "\e[1;31m") \ LESS_TERMCAP_me=$(printf   "\e[0m") \ LESS_TERM

.Net常用技巧_FastReport打印数据集设置

private void btnPrint_Click(object sender, EventArgs e) { //打印主从表数据 string file = Application.StartupPath @"\MasterDetail.frx"; rptMasterDetail.Load(file);//加载报表模板文件 DataSet ds = DAL.GetMasterDetailData();//取报表数据 rptMasterDetail.RegisterData(ds.

phpStorm 使用技巧大集合

之前整理了一部分使用技巧了,但是在实际操作中发现phpstorm的技巧实在是太多了,所以大部分都统一整理到这篇文字中 ,备用 插件1 1:phpstrom的插件Provides live edit HTML/CSS/JavaScript.配合chrome的jb插件(http://www.jetbrains.com/webstorm/webhelp/using-jetbrains-chrome-extension.html) 可以实时看到输出效果 插件2 phpstorm插件css-x-fire+

loadrunner 的Administration Page里面设置

loadrunner 的Administration Page里面设置 1.Set LOGIN form's action tag to an error page.在登录的时候,传递一个动态变量.勾选此项在你录制完脚本后会出现关联,这个是用来练习关联的. 2.Set RESERVATION form's action tag to an error page.在预订的时候,传递动态变量,勾选此项在你录制完脚本后会出现关联,这个是用来练习关联的. 3.Set cliend-side verfic

Loadrunner关联取参及设置检查点

Loadrunner关联取参及设置检查点: 获取post的响应值当作参数存储,要在此post请求之上添加 1 web_reg_save_param("sign", 2 "LB=md5码是:[", 3 "RB=]", 4 "Search=All", 5 LAST); 6 7 8 web_submit_data("tomd5", 9 "Action=http://v49.pclady.com.cn:8

loadrunner 集合点设置2

1.集合点的含义       当通过controller虚拟多个用户执行该脚本时.用户的启动或运行步骤不一定都是同步的,集合点是在脚本的某处设置一个标记.当有虚拟用户运行到这个标记处时,停下等待,直到所有的用户都达到这个标记处时,再一同进行下面的步骤,这样能够用最大的用户并发去做下面的操作,就像集合在前进一样.集合点主要用于对关键步骤的加压. 2.插入集合点的目的       集合点的用处对于loadrunner来说意义非常大,她可以设置多个虚拟用户等待到一个点,同时触发一个事务,以达到模拟真实