LoadRunner之Controller的Scenario-(Manual Scenario)手工场景

一、Manual Scenario(手工场景)【重点】

说明:在实际性能测试过程中,应用最多的还是基于手工设置的场景;

1.1 为什么工作中选择手工场景?

说明:在手工场景模式内可以最大程度模拟业务场景(虚拟用户的增加、减少、虚拟用户对混合场景的应用);

1.2 手工场景的创建

1) 启动 选择手工场景

LoadRunner之Controller的Scenario-(Manual Scenario)手工场景

1. 启动:
    1). 启动Controller工具
    2). Select Scenario Type:Manual Scenario(手工场景)
2. 说明:
       1). Use the Percentage Mode...选项:为(百分比模式)暂不用理会
     2). 场景添加脚本参考-目标场景添加脚本

2) 手工场景界面

LoadRunner之Controller的Scenario-(Manual Scenario)手工场景

说明:
    1. 标1:手工场景的基础计划(脚本名称为组名称、虚拟用户数量默认为10);
    2. 标2:标1基础计划的默认计划选项(计划方式:场景模式、运行模式:实际计划)
    3. 标3:标1计划运行模式(虚拟用户初始化方式、虚拟用户启动加载方式、计划持续运行时间方式、计划完成用户退出方式)
    4. 标4:标3计划运行策略直观图

提示:
    1. 以上4点为手工场景核心,是手工场景重要组成,接下来我们结合场景来理解学习

二、案例 场景需求

说明:
    1. 我们知道场景搭建是模拟真实应用场景,而真实场景一般都为混合模式(多个业务)
    2. 我们结合LR自带机票网站,模拟真实场景来学习混合场景的搭建
场景:
    1. 根据需求分析WebTours订票网站80%用户在使用订票业务,20%用户使用注册业务,统计事务响应时间
    2. 混合场景=注册业务(20)+订票业务(80)
需求:
    1、注册业务小于5秒
    2、订票业务小于10秒
提示:
    1. 注册业务:为录制注册脚本,录制候时记得插入事务
    2. 订票业务:为录制的订票脚本,录制脚本时记得插入事务

需求操作:

1. 注册业务、订票业务脚本
2. 创建手工场景,添加(注册业务、订票业务)脚本
3. 修改脚本虚拟用户数(注册20、订票80)-计划设计
4. 设计全局计划运行策略

1、编写注册脚本

Action()
{

	lr_start_transaction("注册-打开首页");

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

	lr_end_transaction("注册-打开首页", LR_AUTO);


	lr_start_transaction("注册-注册页");

	web_url("注册—打开注册页","URL=http://127.0.0.1:1080/WebTours/login.pl?username=&password=&getInfo=true",LAST);

	lr_end_transaction("注册-注册页", LR_AUTO);


	lr_start_transaction("注册-注册业务");

	//lr_rendezvous("集合点-注册");

	web_submit_data("注册页面",
		"Action=http://127.0.0.1:1080/WebTours/login.pl",
		"Method=POST",
		"TargetFrame=",
		"Referer=",
		"Mode=HTML",
		ITEMDATA,
		"Name=username", "Value={username}", ENDITEM,
		"Name=password", "Value=123456", ENDITEM,
		"Name=passwordConfirm", "Value=123456", ENDITEM,
		"Name=register.x", "Value=66", ENDITEM,
		"Name=register.y", "Value=6", ENDITEM,
		LAST);

	lr_end_transaction("注册-注册业务", LR_AUTO);

	return 0;
}

2、订票脚本

Action()
{
    
	lr_start_transaction("订票-订票总");

	lr_start_transaction("订票-打开首页");

    //关联函数获取动态Session
	web_reg_save_param("Session",
		"LB=name=userSession value=",
		"RB=>",
		LAST);

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

	lr_end_transaction("订票-打开首页", LR_AUTO);

	lr_start_transaction("订票-登录");

	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={username}", ENDITEM,
		"Name=password", "Value=123456", ENDITEM,
		LAST);

	lr_end_transaction("订票-登录", LR_AUTO);

	lr_start_transaction("订票-订票业务");

	//lr_rendezvous("集合点-订票");

	web_url("订票-打开航班页面","URL=http://127.0.0.1:1080/WebTours/welcome.pl?page=search",LAST);

	web_submit_data("从哪到哪",
		"Action=http://127.0.0.1:1080/WebTours/reservations.pl",
		"Method=POST",
		"TargetFrame=",
		"Referer=",
		"Mode=HTML",
		ITEMDATA,
		"Name=advanceDiscount", "Value=0", ENDITEM,
		"Name=depart", "Value=Denver", ENDITEM,
		"Name=departDate", "Value=01/29/2020", ENDITEM,
		"Name=arrive", "Value=Denver", ENDITEM,
		"Name=returnDate", "Value=01/30/2020", ENDITEM,
		"Name=numPassengers", "Value=1", ENDITEM,
		"Name=seatPref", "Value=None", ENDITEM,
		"Name=seatType", "Value=Coach", ENDITEM,
		"Name=findFlights.x", "Value=40", ENDITEM,
		"Name=findFlights.y", "Value=13", ENDITEM,
		"Name=.cgifields", "Value=roundtrip", ENDITEM,
		"Name=.cgifields", "Value=seatType", ENDITEM,
		"Name=.cgifields", "Value=seatPref", ENDITEM,
		LAST);

	web_submit_data("航班公司",
		"Action=http://127.0.0.1:1080/WebTours/reservations.pl",
		"Method=POST",
		"TargetFrame=",
		"Referer=",
		"Mode=HTML",
		ITEMDATA,
		"Name=outboundFlight", "Value=000;0;01/29/2020", ENDITEM,
		"Name=numPassengers", "Value=1", ENDITEM,
		"Name=advanceDiscount", "Value=0", ENDITEM,
		"Name=seatType", "Value=Coach", ENDITEM,
		"Name=seatPref", "Value=None", ENDITEM,
		"Name=reserveFlights.x", "Value=40", ENDITEM,
		"Name=reserveFlights.y", "Value=8", ENDITEM,
		LAST);

	web_submit_data("发票页面",
		"Action=http://127.0.0.1:1080/WebTours/reservations.pl",
		"Method=POST",
		"TargetFrame=",
		"Referer=",
		"Mode=HTML",
		ITEMDATA,
		"Name=firstName", "Value=Joseph", ENDITEM,
		"Name=lastName", "Value=Marshall", ENDITEM,
		"Name=address1", "Value=234 Willow Drive", ENDITEM,
		"Name=address2", "Value=San Jose/CA/94085", ENDITEM,
		"Name=pass1", "Value=Joseph Marshall", ENDITEM,
		"Name=numPassengers", "Value=1", ENDITEM,
		"Name=seatType", "Value=Coach", ENDITEM,
		"Name=seatPref", "Value=None", ENDITEM,
		"Name=outboundFlight", "Value=000;0;01/29/2020", ENDITEM,
		"Name=advanceDiscount", "Value=0", ENDITEM,
		"Name=JSFormSubmit", "Value=off", ENDITEM,
		"Name=buyFlights.x", "Value=67", ENDITEM,
		"Name=buyFlights.y", "Value=10", ENDITEM,
		"Name=.cgifields", "Value=saveCC", ENDITEM,
		LAST);

	lr_end_transaction("订票-订票业务", LR_AUTO);

	web_url("退出","URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1",LAST);

	lr_end_transaction("订票-订票总", LR_AUTO);

	return 0;
}

3、参数列表

(1)注册参数

LoadRunner之Controller的Scenario-(Manual Scenario)手工场景

(2)订票参数

LoadRunner之Controller的Scenario-(Manual Scenario)手工场景

4、场景设置

LoadRunner之Controller的Scenario-(Manual Scenario)手工场景

5、注册组需要设置迭代4次

LoadRunner之Controller的Scenario-(Manual Scenario)手工场景

6、在场景中的日志设置

LoadRunner之Controller的Scenario-(Manual Scenario)手工场景

7、运行结果

LoadRunner之Controller的Scenario-(Manual Scenario)手工场景

通过的20个订票日志为:

LoadRunner之Controller的Scenario-(Manual Scenario)手工场景

LoadRunner之Controller的Scenario-(Manual Scenario)手工场景LoadRunner之Controller的Scenario-(Manual Scenario)手工场景 一醉南柯 发布了181 篇原创文章 · 获赞 76 · 访问量 8万+ 私信 关注
上一篇:zabbix监控oracle


下一篇:LoadRnner压测指南