怎么更好的理解集合点?
如果要求系统能够承受1000人同时提交数据,那么我们就可以在提交数据操作前面加入集合点,当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,从而达到计划中的需求。
还是用LR自带的WebTours为例,用上节https://www.cnblogs.com/dililengba/p/10297379.html 录制好的脚本。
1.手写添加集合点函数。
Action() { web_url("WebTours", "URL=http://127.0.0.1:1080/WebTours/", "TargetFrame=", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", "Mode=HTML", LAST); lr_think_time(37); lr_rendezvous("集合点");//添加集合点 lr_start_transaction("login");//开始登录事务 web_submit_data("login.pl", "Action=http://127.0.0.1:1080/WebTours/login.pl", "Method=POST", "TargetFrame=body", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", "Snapshot=t3.inf", "Mode=HTML", ITEMDATA, "Name=userSession", "Value=125397.629566626ztfAVtApfHAiDDDDDiHAApitDtcf", ENDITEM, "Name=username", "Value=xueli", ENDITEM, "Name=password", "Value=123456", ENDITEM, "Name=JSFormSubmit", "Value=off", ENDITEM, "Name=login.x", "Value=68", ENDITEM, "Name=login.y", "Value=3", ENDITEM, LAST); lr_end_transaction("login",LR_AUTO);//结束登录事务 lr_think_time(18); web_url("IE9CompatViewList.xml", "URL=http://ie9cvlist.ie.microsoft.com/IE9CompatViewList.xml", "TargetFrame=", "Resource=0", "RecContentType=text/xml", "Referer=", "Snapshot=t5.inf", "Mode=HTML", LAST); return 0; }
控制器中设置集合点策略:回放脚本无法实现集合点的作用,集合点必须在多用户并发运行下才能发挥作用,所以我们需要把脚本导入到Controller中进行设置。
2.打开Controller(控制器),导入刚录制的脚本。
3.选择菜单栏场景--->集合--->策略
一共有三种集合策略:
①当所有虚拟用户中的x % 到达集合点进释放,即仅当指定百分比的虚拟用户到达集合点时,才释放虚拟用户。
注意:此选项将会干扰场景的计划。如果选择此选项,场景将不按计划运行,不常用。
②当所有正在运行的虚拟用户中的x %到达集合点时释放,即仅当场景中指定百分比的、正在运行的虚拟用户到达集合点时,才释放虚拟用户。
③当x 个虚拟用户到达集合点时释放,即仅当指定数量的虚拟用户到达集合点时,才释放虚拟用户。
4.设置场景,选择启动Vuser:启动30个用户,每2秒钟进3个用户; 选择持续时间为完成前一直运行。
5.开始场景,分析指标。
---转载请标明,并添加原文链接---
原文地址:https://www.cnblogs.com/dililengba/p/10298644.html