LoadRunner录制第一个脚本Virtual User Generator

录制对象:Loadrunner自带的webTour项目,需要先打开服务即运行startServer,

然后浏览器访问 http://127.0.0.1:1080/WebTours/ 即可看到自带的订票系统网站首页 默认登录账号jojo 密码bean。

  1. 运行Virtual User Generator,点击File,新建一个项目

协议需要根据录制的网站选择,这里选择单协议 Web-HTTP/HTML,输入脚本名称和地址。 

新建后生成的action.c文件,后续会存放录制生成的代码。

 点击record,需要进行录制的设置

application选择录制的浏览器,LR12有的浏览器不支持,这里我安装了24版本的火狐浏览器,

点击start Recording,LR会自动打开浏览器,打开录制的网址,需要手动输入账号密码,进行订票操作,然后退出。

录制结束后,先暂停录制,然后停止录制,会生成脚本代码。

这里生成的脚本都在action.c文件中。

点击回放按钮,会执行脚本。

这里执行了一次,执行通过。

Action()
{
    //加载指定页面
	web_url("WebTours", 
		"URL=http://127.0.0.1:1080/WebTours/", 
		"Resource=0", 
		"Referer=", 
		"Snapshot=t1.inf", 
		"Mode=HTML", 
		LAST);

	web_url("header.html", 
		"URL=http://127.0.0.1:1080/WebTours/header.html", 
		"Resource=0", 
		"Referer=http://127.0.0.1:1080/WebTours/", 
		"Snapshot=t2.inf", 
		"Mode=HTML", 
		LAST);

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

	lr_think_time(8);
//提交表单数据

	web_submit_form("login.pl", 
		"Snapshot=t4.inf", 
		ITEMDATA, 
		"Name=username", "Value=jojo", ENDITEM, 
		"Name=password", "Value=bean", ENDITEM, 
		LAST);

	web_image("Search Flights Button", 
		"Alt=Search Flights Button", 
		"Snapshot=t5.inf", 
		LAST);

/* Added by Async CodeGen.
ID=Poll_0
ScanType = Recording

The following URLs are considered part of this conversation:
	http://127.0.0.1:1080/cgi-bin/reservations.pl

TODO - The following callbacks have been added to AsyncCallbacks.c.
Add your code to the callback implementations as necessary.
	Poll_0_RequestCB
	Poll_0_ResponseCB
 */
	web_reg_async_attributes("ID=Poll_0", 
		"Pattern=Poll", 
		"URL=http://127.0.0.1:1080/cgi-bin/reservations.pl", 
		"PollIntervalMs=900", 
		"RequestCB=Poll_0_RequestCB", 
		"ResponseCB=Poll_0_ResponseCB", 
		LAST);

	web_submit_form("reservations.pl", 
		"Snapshot=t6.inf", 
		ITEMDATA, 
		"Name=depart", "Value=Denver", ENDITEM, 
		"Name=departDate", "Value=10/23/2021", ENDITEM, 
		"Name=arrive", "Value=Denver", ENDITEM, 
		"Name=returnDate", "Value=10/24/2021", ENDITEM, 
		"Name=numPassengers", "Value=1", ENDITEM, 
		"Name=roundtrip", "Value=<OFF>", ENDITEM, 
		"Name=seatPref", "Value=None", ENDITEM, 
		"Name=seatType", "Value=Coach", ENDITEM, 
		LAST);

/* Removed by Async CodeGen.
ID = Poll_0
 */
	/*
 web_submit_form("reservations.pl_2",
		"Snapshot=t7.inf",
		ITEMDATA,
		"Name=outboundFlight", "Value=000;0;10/23/2021", ENDITEM,
		"Name=reserveFlights.x", "Value=62", ENDITEM,
		"Name=reserveFlights.y", "Value=2", ENDITEM,
		LAST); 
	*/

/* Removed by Async CodeGen.
ID = Poll_0
 */
	/*
 web_submit_form("reservations.pl_3",
		"Snapshot=t8.inf",
		ITEMDATA,
		"Name=firstName", "Value=Jojo", ENDITEM,
		"Name=lastName", "Value=Bean", ENDITEM,
		"Name=address1", "Value=", ENDITEM,
		"Name=address2", "Value=", ENDITEM,
		"Name=pass1", "Value=Jojo Bean", ENDITEM,
		"Name=creditCard", "Value=", ENDITEM,
		"Name=expDate", "Value=", ENDITEM,
		"Name=saveCC", "Value=<OFF>", ENDITEM,
		LAST); 
	*/

/* Added by Async CodeGen.
ID = Poll_0
 */
	web_stop_async("ID=Poll_0", 
		LAST);
   //点击sighoff按钮退出
	web_image("SignOff Button", 
		"Alt=SignOff Button", 
		"Snapshot=t9.inf", 
		LAST);

	return 0;
}

おすすめ

転載: blog.csdn.net/seanyang_/article/details/120894605