一、Manual Scenario(手工场景)【重点】
说明:在实际性能测试过程中,应用最多的还是基于手工设置的场景;
1.1 为什么工作中选择手工场景?
说明:在手工场景模式内可以最大程度模拟业务场景(虚拟用户的增加、减少、虚拟用户对混合场景的应用);
1.2 手工场景的创建
1) 启动 选择手工场景
1. 启动:
1). 启动Controller工具
2). Select Scenario Type:Manual Scenario(手工场景)
2. 说明:
1). Use the Percentage Mode...选项:为(百分比模式)暂不用理会
2). 场景添加脚本参考-目标场景添加脚本
2) 手工场景界面
说明:
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)注册参数
(2)订票参数
4、场景设置
5、注册组需要设置迭代4次
6、在场景中的日志设置
7、运行结果
通过的20个订票日志为:
一醉南柯 发布了181 篇原创文章 · 获赞 76 · 访问量 8万+ 私信 关注