欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LoadRunner之VuGen集合点

程序员文章站 2022-05-27 09:09:49
...

一、为什么要学习集合点?

需求:
    1. 10个用户同时登录订票网站,统计服务器处理登录事务性能;

1.1 问题

1. 10个用户同时登录,如何保证10个虚拟用户同时(忽略绝对论,最大程度去模拟)去操作?

1.2 集合点(rendezvous)

说明:在指定的地点集合指定虚拟用户(Vuser),条件满足时集合的虚拟用户,同时去操作同一事务;

提示:
    1. 在VuGen脚本内可以插入集合点,要运行集合点必须配合下一章《Controller》知识点,我们在这里
       先学习如何基于VuGen创建集合点;
    2. 前面了解的并发测试就是基于集合点来完成【重点】

1.3 集合点 创建

 

LoadRunner之VuGen集合点

方式:
    1. 指定插入位置,鼠标右键->Insert->Rendezvous 【推荐】
    2. 工具栏菜单(Insert)->Rendezvous
参数:
    Rendezvous Name:集合点名称-在Controller场景运行时使用 如:Login
提示:
    1. 集合点创建,相当于找好集合的地方,那么到底应该那些用户及集合多少用户需要单独设置
    1. 集合点要设置和运行,必须在Controller工具内完成;
    2. Controller工具我们目前还没有学习,我们在这里先学习使用它如何设置集合点

1.4 集合点设置

1). 基于当前脚本 创建Controller场景

 

LoadRunner之VuGen集合点

1. 菜单工具(Tools)->Create Controller Scenario
   (基于当前脚本直接创建场景)

2). 选择场景模式及虚拟用户数

LoadRunner之VuGen集合点

 设置:

    1. 场景模式:Manual Scenario(手工场景)
    2. Numberof Vusers:虚拟用户数
提示:
    场景模式:我们还没了解,在这里暂时使用下手工场景
    虚拟用户数:为并发用户数,我们这里以需求10个并发登录为例

3) Controller工具内设置集合策略

** 打开集合点设置

LoadRunner之VuGen集合点

Controoler工具-菜单(Scenario)->Rendezvous

** 设置集合点 

LoadRunner之VuGen集合点

说明:
    1. 创建场景时10个用户,默认10个用户都参与集合点
    2. 可指定用户不参与集合点 选择用户-单击Disable VUser按钮
    3. Policy:设置集合用户策略

** Policy集合策略 

LoadRunner之VuGen集合点

1. 集合策略:
    1). 当所有虚拟用户中的x % 到达集合点进释放;
    2). 当所有正在运行的虚拟用户中的x %到达集合点时释放;
    3). 当x 个虚拟用户到达集合点时释放; 【推荐】
2. 时间:
    1). Timeout between Vusers:默认30秒-当指定时间内还未达到以上集合策略用户数量时,释放已集合用户去执行;

3. 提示:
    1). 集合点的插入和场景设置我们就学习完了,集合点的执行我们在学习完Controller工具,在操作;

1.5 需求1 代码

Action()
{

	//定义结果变量
    int result;

	//处理动态session
	web_reg_save_param("Session",
		"LB=name=userSession value=",
		"RB=>",
		LAST);

	//打开webTours首页
	web_url("首页","URL=http://127.0.0.1:1080/WebTours/",LAST);

	//插入集合点 
	lr_rendezvous("集合点—登录");

    //开启事务
	lr_start_transaction("登录");

    //使用关联函数获取登录用户名 
	web_reg_save_param("username",
		"LB=Welcome, <b>",
		"RB=</b>,",
		LAST);

	//登录操作
	web_submit_data("登录",
		"Action=http://127.0.0.1:1080/WebTours//login.pl",
		"Method=POST",
		"TargetFrame=",
		"Referer=",
		"Mode=HTML",
		ITEMDATA,
		"Name=userSession", "Value={Session}", ENDITEM,
		"Name=username", "Value=jojo", ENDITEM,
		"Name=password", "Value=bean", ENDITEM,
		LAST);

    result=strcmp(lr_eval_string("{username}"),"jojo");

	//判断对比结果是否相等
    if(result==0){
		//用户名相等时,插入LR_PASS事务状态
		lr_output_message("登录的用户为:%s 通过!",lr_eval_string("{username}"));
		lr_end_transaction("登录", LR_PASS);
	}else{
	    //用户名不相等时,插入LR_FALL事务状态
		lr_output_message("登录的用户为:%s 不通过!",lr_eval_string("{username}"));
		lr_end_transaction("登录", LR_FAIL); 
	}
	

	return 0;
}

1.6 集合点设置 注意事项

1. 集合点只能在手工场景模式内使用
2. 多个脚本需要同步并发,可以在不同脚本内设置相同集合点,在一个场景内搭建这些脚本;
3. 如果脚本内没有设置集合点,在Controller内集合点策略设置功能不生效
4. 集合点只能在Action部分添加,init、end无法添加

提示:手工场景我们现在还没有学习,在学完手工场景的时候我们在回顾下以上注意事项
相关标签: 性能测试