Loadrunner性能测试工具使用教程(全过程详细讲解):录制场景 + 设计脚本 + 运行脚本 + 分析报告

- 使用的Loadrunner版本是 v12.02
- 录制场景为:WebTours 机票管理系统
- 使用系统:win11,x64

在这里插入图片描述

录制步骤

  1. 找到 Loadrunner安装的路径下 > WebTours 文件夹 > 找到 StartSever.bat 文件,并双击打开;会打开如下图所示cmd窗口
    (注:在录制和执行脚本期间,需要始终保持该窗口打开)

    在这里插入图片描述

  2. 打开 Virtual User Generator,选择新建脚本
    在这里插入图片描述

  3. 填写脚本基本配置信息,选择 Single Protocol > Web -HTTP/HTML 协议格式,设置脚本名称 和 存放位置;然后点击 create
    在这里插入图片描述

  4. create之后,会自动建立一个基本的脚本框架,其中我们录制的脚本需要放到 Action.c 中。

  • 点击录制按钮,会弹出录制配置窗口
  • Record:选择录制 Web Browser
  • Application:指定选择本地浏览器(也可用Loadrunner自带的 Firefox 浏览器)
  • URL Address:http://192.168.xx.xx:1080/WebTours/ (换成自己主机的IP)
  • Start recording:可选择立即录制;或者延迟录制模式
  • Working directory:默认工作配置目录,不用修改
  • 配置完成后,点击 Start Recording

在这里插入图片描述
在这里插入图片描述

  1. 开始录制后,会进入Web Tour页面,且有一个 录制设置栏
  • 在登录操作开始前,插入01_login 事务,方便后续脚本查看和分析;具体步骤:点击插入事务图标 > 输入事务名称 > 点击 OK

  • 然后进行登录操作,输入账号、密码进行登录;登录成功后结束该事务:点击右侧结束事务图标 > 再点击01_login

    在这里插入图片描述
    在这里插入图片描述

  • 点击 Flight,插入 02_search 事务 > 填写地点等信息 > 点击 continue > 结束事务

在这里插入图片描述
在这里插入图片描述

  • 在上一个操作停留的界面;选择航班操作时,插入 03_select 事务 > 选择航班 > 点击 continue > 结束事务
    在这里插入图片描述

  • 在上一个操作停留的界面,支付操作时,插入 04_pay 事务 > 填写账户信息 > 点击 continue > 结束事务
    在这里插入图片描述

  • 在上一个操作停留的界面,插入 05_check 事务 > 点击 Litinerary > 查看预定信息 > 结束事务
    在这里插入图片描述

  • 在上一个操作停留的界面,插入 06_signoff 事务 > 点击 Sign Off > 结束事务

  • 到此,录制场景结束;点击结束按钮

在这里插入图片描述

  1. 录制结束后,ld12版本会自动弹出Design Studio窗口,显示识别到的需要添加关联的地方
    在这里插入图片描述

  2. 先选择一栏 > 点击 Correlate;Status列显示Applied(绿色图标),说明关联成功
    依次关联所有需要关联的栏目
    在这里插入图片描述

  3. 关联后,多出来的代码会有标注
    在这里插入图片描述

  4. 点击 Replay > Run,进行脚本回放,查看是否回放成功
    在这里插入图片描述
    在这里插入图片描述

  5. 点击 Compile,查看是否可编译成功
    在这里插入图片描述
    在这里插入图片描述

参数化处理 - 两种方式

第一种参数化方式(优先推荐)

  1. 需要参数化的变量 > 右键点击 > 选择 Replace with Parameter > Create New Parameter…
    在这里插入图片描述

  2. 在弹出的窗口填写参数名称 > 点击 Properties…
    在这里插入图片描述

  3. 选择 Edit with Notepad… > 在打开的notepad窗口中填写 模拟数据 ,保存 > Close
    在这里插入图片描述

  4. 参数化之后的变量会变成紫色,username同样步骤进行参数化处理
    在这里插入图片描述

第二种参数化方式

  1. 点击 Parameter > 选择 New
    在这里插入图片描述

  2. File Path 设置参数化名称 > 选择 Create Table

在这里插入图片描述

  1. 仍然选择 Edit with Notepad… > 在打开的notepad窗口中填写 模拟数据 ,保存 > Close
    在这里插入图片描述

  2. 然后在脚本中找到需要参数化的 value内容;修改为 参数化名称 username / password 等等;才算参数化完成
    在这里插入图片描述

    注:关于 parameter设置窗口下方执行顺序的设置规则说明:

    在这里插入图片描述
    在这里插入图片描述

设计脚本

  1. 打开 HP LoadRunner Controller,打开刚才保存的脚本
    在这里插入图片描述

  2. 点击如下图标,设置迭代次数 > OK
    在这里插入图片描述

  3. 在Global Schedule 选择 Start … > 右键双击打开 > 设置用户数 和 开始时间
    在这里插入图片描述
    在这里插入图片描述

  4. 在Global Schedule 选择 Duration > 右键双击打开 > 设置执行时间
    在这里插入图片描述

  5. 点击窗口下方 Run > 点击右上角 Start Scenario ,即可运行
    在这里插入图片描述

  6. 运行界面和运行结束后的界面显示
    在这里插入图片描述

处理报告

1.运行脚本结束后,选择 Results > Analyze Result,这时会自己拉起打开 Analysis 工具进行分析;等待分析结束即可

在这里插入图片描述
在这里插入图片描述

  1. 最终报告界面:

在这里插入图片描述

    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/dfd4d093320f434eb99fb014eb01d6a3.png)

在这里插入图片描述

源码

附源码

Action()
{

	web_url("welcome.pl", 
		"URL=http://192.168.11.11:1111/cgi-bin/welcome.pl?signOff=true", 
		"TargetFrame=", 
		"Resource=0", 
		"RecContentType=text/html", 
		"Referer=http://192.168.11.11:1111/WebTours/", 
		"Snapshot=t3.inf", 
		"Mode=HTML", 
		LAST);

	lr_think_time(10);

	lr_start_transaction("01_login");

	web_submit_data("login.pl", 
		"Action=http://192.168.11.11:1111/cgi-bin/login.pl", 
		"Method=POST", 
		"TargetFrame=body", 
		"RecContentType=text/html", 
		"Referer=http://192.168.11.11:1111/cgi-bin/nav.pl?in=home", 
		"Snapshot=t4.inf", 
		"Mode=HTML", 
		ITEMDATA, 
		"Name=userSession", "Value=0AA", ENDITEM, 
		"Name=username", "Value=gaohui", ENDITEM, 
		"Name=password", "Value=test", ENDITEM, 
		"Name=login.x", "Value=63", ENDITEM, 
		"Name=login.y", "Value=7", ENDITEM, 
		"Name=JSFormSubmit", "Value=off", ENDITEM, 
		LAST);

	lr_end_transaction("01_login",LR_AUTO);

	lr_think_time(10);

//*Correlation comment - Do not change!  Original value='flights' Name ='in' Type ='ResponseBased'*/
	web_reg_save_param_regexp(
		"ParamName=in",
		"RegExp=images/(.*?)\\.gif",
		SEARCH_FILTERS,
		"Scope=Body",
		"IgnoreRedirections=No",
		"RequestUrl=*/nav.pl*",
		LAST);

//*Correlation comment - Do not change!  Original value='itinerary' Name ='page' Type ='ResponseBased'*/
	web_reg_save_param_regexp(
		"ParamName=page",
		"RegExp=page=(.*?)\"\\ TARGET",
		"Ordinal=2",
		SEARCH_FILTERS,
		"Scope=Body",
		"IgnoreRedirections=No",
		"RequestUrl=*/nav.pl*",
		LAST);
		
/*Correlation comment - Do not change!  Original value='roundtrip' Name ='.cgifields' Type ='ResponseBased'*/
	web_reg_save_param_regexp(
		"ParamName=.cgifields",
		"RegExp=\\ name=\"(.*?)\"\\ value",
		"Ordinal=5",
		SEARCH_FILTERS,
		"Scope=Body",
		"IgnoreRedirections=No",
		"RequestUrl=*/reservations.pl*",
		LAST);

/*Correlation comment - Do not change!  Original value='seatPref' Name ='Name' Type ='ResponseBased'*/
	web_reg_save_param_regexp(
		"ParamName=Name",
		"RegExp=\\ name=\"(.*?)\"\\ value",
		"Ordinal=6",
		SEARCH_FILTERS,
		"Scope=Body",
		"IgnoreRedirections=No",
		"RequestUrl=*/reservations.pl*",
		LAST);

/*Correlation comment - Do not change!  Original value='seatType' Name ='Name_1' Type ='ResponseBased'*/
	web_reg_save_param_regexp(
		"ParamName=Name_1",
		"RegExp=\\ name=\"(.*?)\"\\ value",
		"Ordinal=9",
		SEARCH_FILTERS,
		"Scope=Body",
		"IgnoreRedirections=No",
		"RequestUrl=*/reservations.pl*",
		LAST);

/*Correlation comment - Do not change!  Original value='reservations.pl' Name ='CorrelationParameter' Type ='ResponseBased'*/
	web_reg_save_param_regexp(
		"ParamName=CorrelationParameter",
		"RegExp=frame\\ src=\"(.*?)\\?page",
		"Ordinal=2",
		SEARCH_FILTERS,
		"Scope=Body",
		"IgnoreRedirections=No",
		"RequestUrl=*/welcome.pl*",
		LAST);
		
	web_url("Search Flights Button", 
		"URL=http://192.168.11.11:1111/cgi-bin/welcome.pl?page=search", 
		"TargetFrame=body", 
		"Resource=0", 
		"RecContentType=text/html", 
		"Referer=http://192.168.11.11:1111/cgi-bin/nav.pl?page=menu&in=home", 
		"Snapshot=t5.inf", 
		"Mode=HTML", 
		LAST);

	lr_think_time(10);

	lr_start_transaction("02_search");

/*Correlation comment - Do not change!  Original value='262;1039;12/24/2024' Name ='outboundFlight' Type ='ResponseBased'*/
	web_reg_save_param_regexp(
		"ParamName=outboundFlight",
		"RegExp=name=\"outboundFlight\"\\ value=\"(.*?)\">Blue\\ Sky\\ Air\\ 262",
		SEARCH_FILTERS,
		"Scope=Body",
		"IgnoreRedirections=No",
		LAST);

	web_submit_data("reservations.pl",
		"Action=http://192.168.11.11:1111/cgi-bin/{CorrelationParameter}",
		"Method=POST",
		"TargetFrame=",
		"RecContentType=text/html",
		"Referer=http://192.168.11.11:1111/cgi-bin/{CorrelationParameter}?page=welcome",
		"Snapshot=t6.inf",
		"Mode=HTML",
		ITEMDATA,
		"Name=advanceDiscount", "Value=0", ENDITEM,
		"Name=depart", "Value=London", ENDITEM,
		"Name=departDate", "Value=12/24/2024", ENDITEM,
		"Name=arrive", "Value=San Francisco", ENDITEM,
		"Name=returnDate", "Value=12/25/2024", ENDITEM,
		"Name=numPassengers", "Value=1", ENDITEM,
		"Name={Name}", "Value=Window", ENDITEM,
		"Name={Name_1}", "Value=First", ENDITEM,
		"Name=findFlights.x", "Value=25", ENDITEM,
		"Name=findFlights.y", "Value=7", ENDITEM,
		"Name=.cgifields", "Value={.cgifields}", ENDITEM,
		"Name=.cgifields", "Value={Name_1}", ENDITEM,
		"Name=.cgifields", "Value={Name}", ENDITEM,
		LAST);

	lr_end_transaction("02_search",LR_AUTO);

	lr_think_time(10);
	
	lr_start_transaction("03_select");

	web_submit_data("reservations.pl_2",
		"Action=http://192.168.11.11:1111/cgi-bin/{CorrelationParameter}",
		"Method=POST",
		"TargetFrame=",
		"RecContentType=text/html",
		"Referer=http://192.168.11.11:1111/cgi-bin/{CorrelationParameter}",
		"Snapshot=t7.inf",
		"Mode=HTML",
		ITEMDATA,
		"Name=outboundFlight", "Value={outboundFlight}", ENDITEM,
		"Name=numPassengers", "Value=1", ENDITEM,
		"Name=advanceDiscount", "Value=0", ENDITEM,
		"Name={Name_1}", "Value=First", ENDITEM,
		"Name={Name}", "Value=Window", ENDITEM,
		"Name=reserveFlights.x", "Value=48", ENDITEM,
		"Name=reserveFlights.y", "Value=6", ENDITEM,
		LAST);

	lr_end_transaction("03_select",LR_AUTO);

	lr_think_time(10);

	lr_start_transaction("04_pay");

	web_submit_data("reservations.pl_3",
		"Action=http://192.168.11.11:1111/cgi-bin/{CorrelationParameter}",
		"Method=POST",
		"TargetFrame=",
		"RecContentType=text/html",
		"Referer=http://192.168.11.11:1111/cgi-bin/{CorrelationParameter}",
		"Snapshot=t8.inf",
		"Mode=HTML",
		ITEMDATA,
		"Name=firstName", "Value=H", ENDITEM,
		"Name=lastName", "Value=G", ENDITEM,
		"Name=address1", "Value=SH", ENDITEM,
		"Name=address2", "Value=;CN", ENDITEM,
		"Name=pass1", "Value= echo", ENDITEM,
		"Name=creditCard", "Value=hui", ENDITEM,
		"Name=expDate", "Value=gao", ENDITEM,
		"Name=saveCC", "Value=on", ENDITEM,
		"Name=oldCCOption", "Value=on", ENDITEM,
		"Name=numPassengers", "Value=1", ENDITEM,
		"Name={Name_1}", "Value=First", ENDITEM,
		"Name={Name}", "Value=Window", ENDITEM,
		"Name=outboundFlight", "Value={outboundFlight}", ENDITEM,
		"Name=advanceDiscount", "Value=0", ENDITEM,
		"Name=returnFlight", "Value=", ENDITEM,
		"Name=JSFormSubmit", "Value=off", ENDITEM,
		"Name=buyFlights.x", "Value=35", ENDITEM,
		"Name=buyFlights.y", "Value=13", ENDITEM,
		"Name=.cgifields", "Value=saveCC", ENDITEM,
		LAST);

	lr_end_transaction("04_pay",LR_AUTO);

	lr_think_time(10);

	lr_start_transaction("05_check");

	web_url("Itinerary Button",
		"URL=http://192.168.11.11:1111/cgi-bin/welcome.pl?page={page}",
		"TargetFrame=body",
		"Resource=0",
		"RecContentType=text/html",
		"Referer=http://192.168.11.11:1111/cgi-bin/nav.pl?page=menu&in={in}",
		"Snapshot=t9.inf",
		"Mode=HTML",
		LAST);

	lr_end_transaction("05_check",LR_AUTO);

	lr_think_time(10);

	lr_start_transaction("06_signout");

	web_url("SignOff Button",
		"URL=http://192.168.11.11:1111/cgi-bin/welcome.pl?signOff=1",
		"TargetFrame=body",
		"Resource=0",
		"RecContentType=text/html",
		"Referer=http://192.168.11.11:1111/cgi-bin/nav.pl?page=menu&in={page}",
		"Snapshot=t10.inf",
		"Mode=HTML",
		LAST);

	lr_end_transaction("06_signout",LR_AUTO);

	return 0;
}

遇到的一些问题及解决方案

Loadrunner 12.02录制失败,loadrunner no correlation…解决办法

Loadrunner, Error -27979:Requested form not found解决方案

Loadrunner关联回放报错:Error -35049 No match found for the requested parameter “x“, check whether the requ

Loadrunner12 Controller 运行时不显示具体信息可视化的表格视图 解决方案

Loadrunner Controller cannot create Vusers.Ensure that your load…问题解决

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

echo 慧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值