LR中关于关联和参数化的一点问题求解
在进行关联后,设置参数化,编译时提示:错误 -26377: 找不到请求的参数“userSession”的匹配项。检查请求的边界是否存在于响应数据中。此外,如果要保存的数据超过 256 个字节,请使用 web_set_max_html_param_len 增加参数大小我觉得应该是我参数化不对,但是不知道怎么去参数化这个值,请各位路过的大神解答下,谢谢!(小妹研究LR不久,小白问题也请各位帮下忙~:loveliness: )
Action()
{
lr_start_transaction("login_10");
lr_rendezvous("login_10");
lr_think_time(47);
web_reg_save_param("userSession","LB=input type=hidden name=userSession value=","RB=>",LAST);
web_submit_data("login.pl",
"Action=http://127.0.0.1:1080/mercuryWebTours/login.pl",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/mercuryWebTours/nav.pl?in=home",
"Snapshot=t2.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value={userSession}", ENDITEM,
"Name=username", "Value={Username}", ENDITEM,
"Name=password", "Value={Password}", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
"Name=login.x", "Value=44", ENDITEM,
"Name=login.y", "Value=8", ENDITEM,
LAST);
lr_end_transaction("login_10",LR_AUTO);
return 0;
}
究竟这个userSession的参数化值应该怎么定义呢?原来是108217.408262454ffzztDcpQDHfDDDQipfQHzcf;
再次谢谢各位大大们~ web_reg_save_param是关联服务器返回值用的,必须放在返回值的代码前面。现在userSession根本取不到值,那也没法运行了 1.关联的userSession,这个是关联不是参数化,设置好web_reg_save_param("userSession","LB="Name=userSession", "Value=","RB=>",LAST);
这样就可以了。
2.关联就是关联,没事把这个东西参数化干嘛,难道你还能知道他每次变换产生的那些乱七八糟的东西。。。。
3.web_set_max_html_param_len放个1024上去就可以了 这个是要做关联才对 回复 3# hclovezz1314
我只是去掉参数化之后再次编译无错,回放时提示:
Action.c(10): 错误 -27216: 参数无效(编号 3)
Action.c(10): 注册 web_reg_save_param 的最高严重级别为“ERROR”
Action.c(10): 通知: Transaction "login_10" ended with "Fail" status (Duration: 0.0348).
请问下这个是什么原因呢~谢谢了~ 回复 4# zhoward
我就是做了关联,初次接触关联,昨天百度文库里找了个关联的教程看了看,说是要对关联的做参数化,我就做了T.T,结果就报错了,现在去掉参数化之后再次编译时报错提示参数无效~~:Q 把修改后的代码贴出来 回复 7# ymwang119
Action()
{
lr_start_transaction("login_10");
lr_rendezvous("login_10");
lr_think_time(47);
web_reg_save_param("userSession","LB=input type=hidden name=userSession", "value=","RB=>",LAST);
web_submit_data("login.pl",
"Action=http://127.0.0.1:1080/mercuryWebTours/login.pl",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/mercuryWebTours/nav.pl?in=home",
"Snapshot=t2.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value=108217.408262454ffzztDcpQDHfDDDQipfQHzcf", ENDITEM,
"Name=username", "Value={Username}", ENDITEM,
"Name=password", "Value={Password}", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
"Name=login.x", "Value=44", ENDITEM,
"Name=login.y", "Value=8", ENDITEM,
LAST);
lr_end_transaction("login_10",LR_AUTO);
return 0;
} 参数化的意思是要把你所做的关联userSession值用{userSession}参数化......另外,你设置了集合点,那思考时间应当要放在集合点外,不然你这算出来的事务时间就差太多了。 你的情况一般三种可能:
1. 服务器挂掉了。你先手工操作一下看看是不是服务器真的挂掉了。
2.你的关联左右边界出了错误。到Response中查看一下是不是左右边界搞错了。
3. 你关联的数据太长超过了默认可以关联的最大长度。可以通过web_set_max_html_param_len函数设置关联数据的最大长度,不过这个可能性在你现在的脚本中不存在。 本帖最后由 ymwang119 于 2012-5-10 16:36 编辑
回复 8# xiongxixin
脚本修改如下试试:
Action()
{
lr_rendezvous("login_10");
lr_start_transaction("login_10");
lr_think_time(10);
web_reg_save_param("userSession","LB=Value=\"","RB=\"","NotFound=ERROR","Search=All", LAST);
web_submit_data("login.pl",
"Action=http://127.0.0.1:1080/mercuryWebTours/login.pl",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/mercuryWebTours/nav.pl?in=home",
"Snapshot=t2.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value={userSession}", ENDITEM,
"Name=username", "Value={Username}", ENDITEM,
"Name=password", "Value={Password}", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
"Name=login.x", "Value=44", ENDITEM,
"Name=login.y", "Value=8", ENDITEM,
LAST);
lr_end_transaction("login_10",LR_AUTO);
return 0;
} 11#有的特殊字符要转义,需要注意一下 回复 1# xiongxixin
关联的左右边界错了,你关联的userSession值取到的实际值和你预期的值不一样的,所以你向服务器发送请求的时候,服务器没办法相应你的请求的 别那么长的左边界,就value=就OK了,然后看看在log里是第几个"value=". 别那么长的左边界,就value=就OK了,然后看看在log里是第几个"value=". 关联错了哦。。。:shutup: 回复 12# guchenggao
多谢提示,已改正 我怎么觉得楼主不应该用关联,而是应该用参数化。。。 userSession应该是关联 web_reg_save_param("userSession","LB=input type=hidden name=userSession value=","RB=>",LAST);
这个应该放在前一个请求前,不应放在你要提交的这个数据(服务返回的关联数据)请求前;
做关联,取和用是在不同的语句,你现在这样写就是取和用在同一个请求,肯定是不对的,估计你漏了一个页面请求(可能就是你打开网站的登陆Logo页面)
页:
[1]
2