loadRunner写脚本实现登录机票网站,手动关联,获取页面源码中特定字符
手动关联,就是通过函数获取某个步骤生成的字符,赋值给一个变量,这个变量可以作为接下来某个步骤的输入,
以便这个脚本能够在存在关联约束关系的场景中顺利走通,例如登录机票预订系统步骤的条件之一,是需要在进入首页时获取一个动态的usersession的值,
这个userSession的值需要在登录系统时用到,那么在通过关联函数可以在进入主业时动网页源代码中获取这个值,然后在登录时把这个值传给参数就可以了
代码:
Action()
{
//<B>sign up
now</B></A>
web_reg_save_param_regexp(
"ParamName=gloryroad",
"RegExp=<B>(.*)</B></A>",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=No",
LAST);
web_url("index.htm",
"URL=http://127.0.0.1:1080/WebTours/index.htm",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t20.inf",
"Mode=HTML",
LAST);
return 0;
}
结果:匹配成功
手动关联的另一个例子:进入首页后 ,获取userSession,在登录机票系统传入这个变量
代码:
Action()
{
/*Correlation comment - Do not change! Original value='125352.422519239zttHiVfpcDDDDDDDDizizpiQVt' Name ='userSession' Type ='ResponseBased'*/
web_reg_save_param_regexp(
"ParamName=userSession",
"RegExp=name="userSession"\ value="(.*?)"/>\
<table\ border",
SEARCH_FILTERS,
"Scope=Body",
"IgnoreRedirections=No",
"RequestUrl=*/nav.pl*",
LAST);
web_url("index.htm",
"URL=http://127.0.0.1:1080/WebTours/index.htm",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t20.inf",
"Mode=HTML",
LAST);
lr_save_string(lr_decrypt("5c3c9ad6232a1458"), "PasswordParameter");
lr_think_time(6);
//断言登录后的字符串
web_reg_find("Text=Using the menu to the left",
LAST );
web_submit_data("login.pl",
"Action=http://127.0.0.1:1080/cgi-bin/login.pl",
"Method=POST",
"TargetFrame=body",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home",
"Snapshot=t21.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value={userSession}", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
"Name=login.x", "Value=43", ENDITEM,
"Name=login.y", "Value=6", ENDITEM,
"Name=password", "Value=xfc1", ENDITEM,
//"Name=userSession", "Value= 125352.083920616zttHHQHpiVzzzzzHDizizpHizQ", ENDITEM,
"Name=username", "Value=xfc1", ENDITEM,
LAST);
return 0;
}
结果: