loadrunner测试步骤
第一步 VUGen创建脚本
1、录制选项
选择哪种方式录制
基于浏览器的应用程序,推荐使用HTML-based Script
基于非浏览器的应用程序,推荐使用URL-based Script
基于浏览器的应用程序使用了HTTPS安全协议,推荐使用URL-based Script
录制脚本ing
事务(Transaction)
事务是这样一个点,我们为了衡量某个action的性能,需要在action的开始和结束位置插入这样一个范围,这就是一个事务----》指标:响应时间
关联(correlation)
关联就是把脚本中某些写死的数据,转变成是选取自服务器所送的,动态的、每次都不一样的数据。
参数化
参数化就是使用指定数据源中的值来替换脚本录制生成的语句中的参数。
【参数化步骤】:
1、用参数替换Vuser脚本中的常量值
2、为参数设置属性和数据源
增强测试脚本,参数换
Action() { //name="userSession" value="127590.588335358zfzcQtApiiHfDQDHHpztfDcf"/> web_reg_save_param_ex( "ParamName=session", "LB=name=\"userSession\" value=\"", "RB=\"/>", LAST); // web_reg_save_param_ex( // "ParamName=session", // "LB=name=\"userSession\" value=\"", // "RB=\"/>", // SEARCH_FILTERS, // LAST); web_url("index.htm", "URL=http://127.0.0.1:1080/WebTours/index.htm", "TargetFrame=", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", "Mode=HTML", LAST); lr_think_time(32); lr_start_transaction("1_login"); web_submit_data("login.pl", "Action=http://127.0.0.1:1080/cgi-bin/login.pl", "Method=POST", "TargetFrame=", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home", "Snapshot=t2.inf", "Mode=HTML", ITEMDATA, "Name=userSession", "Value={session}", ENDITEM, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=JSFormSubmit", "Value=on", ENDITEM, "Name=login.x", "Value=51", ENDITEM, "Name=login.y", "Value=6", ENDITEM, LAST); lr_end_transaction("1_login",LR_AUTO); lr_think_time(4); web_url("Search Flights Button", "URL=http://127.0.0.1:1080/cgi-bin/welcome.pl?page=search", "TargetFrame=body", "Resource=0", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?page=menu&in=home", "Snapshot=t3.inf", "Mode=HTML", LAST); lr_think_time(24); lr_start_transaction("1_FingFlight"); //name="outboundFlight" value="422;193;12/01/2019"> web_reg_save_param_ex( "ParamName=outboundFlight", "LB=name=\"outboundFlight\" value=\"", "RB=\">", "NotFound=warning", "Ordinal=3", "SaveLen=18", SEARCH_FILTERS, LAST); // web_reg_save_param_ex( // "ParamName=outboundFlight", // "LB=name=\"outboundFlight\" value=\"", // "RB=\">", // "Ord=1", // "SaveLen=18", // // LAST); web_submit_data("reservations.pl", "Action=http://127.0.0.1:1080/cgi-bin/reservations.pl", "Method=POST", "TargetFrame=", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/reservations.pl?page=welcome", "Snapshot=t4.inf", "Mode=HTML", ITEMDATA, "Name=advanceDiscount", "Value=0", ENDITEM, "Name=depart", "Value={depart}", ENDITEM, "Name=departDate", "Value=12/01/2019", ENDITEM, "Name=arrive", "Value={arrivecity}", ENDITEM, "Name=returnDate", "Value=12/02/2019", ENDITEM, "Name=numPassengers", "Value=1", ENDITEM, "Name=seatPref", "Value=Window", ENDITEM, "Name=seatType", "Value=First", ENDITEM, "Name=.cgifields", "Value=roundtrip", ENDITEM, "Name=.cgifields", "Value=seatType", ENDITEM, "Name=.cgifields", "Value=seatPref", ENDITEM, "Name=findFlights.x", "Value=55", ENDITEM, "Name=findFlights.y", "Value=12", ENDITEM, LAST); lr_end_transaction("1_FingFlight",LR_AUTO); lr_think_time(22); lr_start_transaction("1_SelectFlight"); web_submit_data("reservations.pl_2", "Action=http://127.0.0.1:1080/cgi-bin/reservations.pl", "Method=POST", "TargetFrame=", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/reservations.pl", "Snapshot=t5.inf", "Mode=HTML", ITEMDATA, "Name=outboundFlight", "Value={outboundFlight}", ENDITEM, "Name=numPassengers", "Value=1", ENDITEM, "Name=advanceDiscount", "Value=0", ENDITEM, "Name=seatType", "Value=First", ENDITEM, "Name=seatPref", "Value=Window", ENDITEM, "Name=reserveFlights.x", "Value=42", ENDITEM, "Name=reserveFlights.y", "Value=11", ENDITEM, LAST); lr_end_transaction("1_SelectFlight",LR_AUTO); lr_think_time(27); lr_start_transaction("1_payment"); web_submit_data("reservations.pl_3", "Action=http://127.0.0.1:1080/cgi-bin/reservations.pl", "Method=POST", "TargetFrame=", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/reservations.pl", "Snapshot=t6.inf", "Mode=HTML", ITEMDATA, "Name=firstName", "Value=Jojo", ENDITEM, "Name=lastName", "Value=Bean", ENDITEM, "Name=address1", "Value=shanghai", ENDITEM, "Name=address2", "Value=beijing", ENDITEM, "Name=pass1", "Value=Jojo Bean", ENDITEM, "Name=creditCard", "Value=123456", ENDITEM, "Name=expDate", "Value=123", ENDITEM, "Name=oldCCOption", "Value=", ENDITEM, "Name=numPassengers", "Value=1", ENDITEM, "Name=seatType", "Value=First", ENDITEM, "Name=seatPref", "Value=Window", ENDITEM, "Name=outboundFlight", "Value={outboundFlight}", ENDITEM, "Name=advanceDiscount", "Value=0", ENDITEM, "Name=returnFlight", "Value=", ENDITEM, "Name=JSFormSubmit", "Value=off", ENDITEM, "Name=.cgifields", "Value=saveCC", ENDITEM, "Name=buyFlights.x", "Value=32", ENDITEM, "Name=buyFlights.y", "Value=11", ENDITEM, LAST); lr_end_transaction("1_payment",LR_AUTO); lr_think_time(9); web_url("Home Button", "URL=http://127.0.0.1:1080/cgi-bin/welcome.pl?page=menus", "TargetFrame=body", "Resource=0", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?page=menu&in=flights", "Snapshot=t7.inf", "Mode=HTML", LAST); lr_think_time(17); lr_start_transaction("1_signoff"); web_url("SignOff Button", "URL=http://127.0.0.1:1080/cgi-bin/welcome.pl?signOff=1", "TargetFrame=body", "Resource=0", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?page=menu&in=home", "Snapshot=t8.inf", "Mode=HTML", LAST); lr_end_transaction("1_signoff",LR_AUTO); return 0; }
参数化脚本
运行时设置
回放测试脚本通过
第二步使用Controller创建测试场景
第三步使用Analysis分析测试结果