ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2020-01-28 13:36:18  阅读:418  来源: 互联网

标签:场景 Name Scenario LoadRunner 订票 Manual Value lr ENDITEM


一、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万+ 私信 关注

标签:场景,Name,Scenario,LoadRunner,订票,Manual,Value,lr,ENDITEM
来源: https://blog.csdn.net/dpl12/article/details/104094263

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有