录制对象:Loadrunner自带的webTour项目,需要先打开服务即运行startServer,
然后浏览器访问 http://127.0.0.1:1080/WebTours/ 即可看到自带的订票系统网站首页 默认登录账号jojo 密码bean。
- 运行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;
}