loadrunner GUI界面性能测试

来源:互联网 发布:淘宝售假仅退款不退货 编辑:程序博客网 时间:2024/06/08 12:32

1、测试目标:测试界面10个用户并发登陆后搜索、预定、查询的负载压力测试表现

2、脚本录制: virtual user录制脚本,设置事务、参数化,检查点等

3、场景设计

4、分析结果

遇到问题:首先我在录制脚本的时候把所有的登陆、搜索、预定、查询、退出都录制在Action中,在场景设计好后运行后能够测试,但是就是所有的登陆、搜索、预定、查询、退出事务执行的次数都相同,并没有对用户所重点操作的事务进行重点测试

原因:现实应该是用户登录后,它会将自己的操作放在搜索、预定、查询上面,所以这三个事务才是测压的重点

解决办法:将用户登录放到 vuser_init内,让用户登录只执行一次,后搜索、预定、查询录在Action中,把用户退出录在vuser_end里面,这样就可以执行对三个事务的重点场景测试

这个过程中也遇到了问题,我一开始是直接将原来所有事务录在Action中的每部分分别放到init action end中去,结果就发现从init跳到action和从action跳到end会报错,原因是可能缓存了URL,就想着将run-time setting中的browser 中的cache urls require contents去掉,这样脚本运行能通过,但是放到场景设计后再运行就开始大量报错,就想想是不是这样处理脚本还是不行

解决办法:重新直接录制脚本,在录制过程中分init action end三段来录,这样每段之间其实就把URL信息传递下去,这样脚本运行也就没有问题,而且场景设计运行也没有问题,没有报错。

总结:要明确用例设置测试的重点是什么就放在action中,其他只是初始化和结束,脚本简单修改可能还是会有问题,还需要重新录制才能保证准确,场景运行遇到问题要仔细分析脚本是否有问题,也对场景目标有更深的理解


附成功录制脚本如下:

vuser_init()
{




web_reg_save_param("userlog",
"LB=name=userSession value=",
"RB=>",
"Ord=1",
"Search=All",
"IgnoreRedirections=Yes",
LAST);


lr_start_transaction("HomePage");




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


lr_think_time(8);


lr_end_transaction("HomePage", LR_AUTO);


lr_start_transaction("login");




web_submit_data("login.pl", 
"Action=http://127.0.0.1:1080/WebTours/login.pl", 
"Method=POST", 
"RecContentType=text/html", 
"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", 
"Snapshot=t45.inf", 
"Mode=HTML", 
ITEMDATA, 
"Name=userSession", "Value={userlog}", ENDITEM, 
"Name=username", "Value=lw2", ENDITEM, 
"Name=password", "Value=lw2", ENDITEM, 
"Name=JSFormSubmit", "Value=on", ENDITEM, 
"Name=login.x", "Value=47", ENDITEM, 
"Name=login.y", "Value=12", ENDITEM, 
LAST);


lr_end_transaction("login", LR_AUTO);




return 0;
}


Action()
{


lr_think_time(9);




web_url("welcome.pl", 
"URL=http://127.0.0.1:1080/WebTours/welcome.pl?page=search", 
"Resource=0", 
"RecContentType=text/html", 
"Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home", 
"Snapshot=t46.inf", 
"Mode=HTML", 
LAST);


lr_think_time(5);


lr_start_transaction("searchfight");




web_submit_form("reservations.pl", 
"Snapshot=t47.inf", 
ITEMDATA, 
"Name=depart", "Value=Denver", ENDITEM, 
"Name=departDate", "Value=06/11/2017", ENDITEM, 
"Name=arrive", "Value=Los Angeles", ENDITEM, 
"Name=returnDate", "Value=06/12/2017", ENDITEM, 
"Name=numPassengers", "Value=1", ENDITEM, 
"Name=roundtrip", "Value=<OFF>", ENDITEM, 
"Name=seatPref", "Value=Aisle", ENDITEM, 
"Name=seatType", "Value=Coach", ENDITEM, 
"Name=findFlights.x", "Value=61", ENDITEM, 
"Name=findFlights.y", "Value=6", ENDITEM, 
LAST);


web_submit_form("reservations.pl_2", 
"Snapshot=t48.inf", 
ITEMDATA, 
"Name=outboundFlight", "Value=030;251;06/11/2017", ENDITEM, 
"Name=reserveFlights.x", "Value=26", ENDITEM, 
"Name=reserveFlights.y", "Value=8", ENDITEM, 
LAST);


lr_think_time(10);


lr_end_transaction("searchfight", LR_AUTO);




lr_start_transaction("bookflight");


web_submit_form("reservations.pl_3", 
"Snapshot=t49.inf", 
ITEMDATA, 
"Name=firstName", "Value=weiwei", ENDITEM, 
"Name=lastName", "Value=Li", ENDITEM, 
"Name=address1", "Value=panyu", ENDITEM, 
"Name=address2", "Value=Guangzhou", ENDITEM, 
"Name=pass1", "Value=weiwei Li", ENDITEM, 
"Name=creditCard", "Value=1234567", ENDITEM, 
"Name=expDate", "Value=10/8", ENDITEM, 
"Name=saveCC", "Value=<OFF>", ENDITEM, 
"Name=buyFlights.x", "Value=29", ENDITEM, 
"Name=buyFlights.y", "Value=13", ENDITEM, 
LAST);


lr_end_transaction("bookflight", LR_AUTO);


lr_start_transaction("check itinerary");




web_image("Itinerary Button", 
"Alt=Itinerary Button", 
"Snapshot=t50.inf", 
LAST);


lr_end_transaction("check itinerary", LR_AUTO);




return 0;
}


vuser_end()
{


lr_think_time(7);


lr_start_transaction("loginoff");




web_url("welcome.pl_2", 
"URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1", 
"Resource=0", 
"RecContentType=text/html", 
"Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=itinerary", 
"Snapshot=t51.inf", 
"Mode=HTML", 
LAST);


lr_end_transaction("loginoff", LR_AUTO);


lr_output_message("预定成功");




return 0;
}


原创粉丝点击