51Testing软件测试论坛

标题: LR中关于关联和参数化的一点问题求解 [打印本页]

作者: xiongxixin    时间: 2012-5-9 17:56
标题: LR中关于关联和参数化的一点问题求解
在进行关联后,设置参数化,编译时提示:错误 -26377: 找不到请求的参数“userSession”的匹配项。检查请求的边界是否存在于响应数据中。此外,如果要保存的数据超过 256 个字节,请使用 web_set_max_html_param_len 增加参数大小          [MsgId: MERR-26377]



我觉得应该是我参数化不对,但是不知道怎么去参数化这个值,请各位路过的大神解答下,谢谢!(小妹研究LR不久,小白问题也请各位帮下忙~

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;


再次谢谢各位大大们~
作者: jj_ljw    时间: 2012-5-9 19:31
web_reg_save_param是关联服务器返回值用的,必须放在返回值的代码前面。现在userSession根本取不到值,那也没法运行了
作者: hclovezz1314    时间: 2012-5-10 10:02
1.关联的userSession,这个是关联不是参数化,设置好web_reg_save_param("userSession","LB="Name=userSession", "Value=","RB=>",LAST);
这样就可以了。
2.关联就是关联,没事把这个东西参数化干嘛,难道你还能知道他每次变换产生的那些乱七八糟的东西。。。。
3.web_set_max_html_param_len放个1024上去就可以了
作者: zhoward    时间: 2012-5-10 10:15
这个是要做关联才对
作者: xiongxixin    时间: 2012-5-10 10:36
回复 3# hclovezz1314


  我只是去掉参数化之后再次编译无错,回放时提示:
Action.c(10): 错误 -27216: 参数无效(编号 3)          [MsgId: MERR-27216]
Action.c(10): 注册 web_reg_save_param 的最高严重级别为“ERROR”          [MsgId: MMSG-26389]
Action.c(10): 通知: Transaction "login_10" ended with "Fail" status (Duration: 0.0348).

请问下这个是什么原因呢~谢谢了~
作者: xiongxixin    时间: 2012-5-10 10:38
回复 4# zhoward


    我就是做了关联,初次接触关联,昨天百度文库里找了个关联的教程看了看,说是要对关联的做参数化,我就做了T.T,结果就报错了,现在去掉参数化之后再次编译时报错提示参数无效~~
作者: ymwang119    时间: 2012-5-10 10:42
把修改后的代码贴出来
作者: xiongxixin    时间: 2012-5-10 10:49
回复 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;
}
作者: zhoward    时间: 2012-5-10 11:39
参数化的意思是要把你所做的关联userSession值用{userSession}参数化......另外,你设置了集合点,那思考时间应当要放在集合点外,不然你这算出来的事务时间就差太多了。
作者: li373935562    时间: 2012-5-10 15:44
你的情况一般三种可能:
1. 服务器挂掉了。你先手工操作一下看看是不是服务器真的挂掉了。
2.你的关联左右边界出了错误。到Response中查看一下是不是左右边界搞错了。
3. 你关联的数据太长超过了默认可以关联的最大长度。可以通过web_set_max_html_param_len函数设置关联数据的最大长度,不过这个可能性在你现在的脚本中不存在。
作者: ymwang119    时间: 2012-5-10 16:21
本帖最后由 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;
}
作者: guchenggao    时间: 2012-5-10 16:28
11#  有的特殊字符要转义,需要注意一下
作者: bob123654    时间: 2012-5-11 09:07
回复 1# xiongxixin


    关联的左右边界错了,你关联的userSession值取到的实际值和你预期的值不一样的,所以你向服务器发送请求的时候,服务器没办法相应你的请求的
作者: hongchongren    时间: 2012-5-14 15:19
别那么长的左边界,就value=就OK了,然后看看在log里是第几个"value=".
作者: hongchongren    时间: 2012-5-14 15:20
别那么长的左边界,就value=就OK了,然后看看在log里是第几个"value=".
作者: joykao    时间: 2012-5-21 14:55
关联错了哦。。。
作者: ymwang119    时间: 2012-5-21 15:04
回复 12# guchenggao


    多谢提示,已改正
作者: Donly    时间: 2012-5-21 17:26
我怎么觉得楼主不应该用关联,而是应该用参数化。。。
作者: 花儿开在春风里    时间: 2012-5-23 16:48
userSession应该是关联
作者: qvbfnsc    时间: 2012-5-23 18:51
web_reg_save_param("userSession","LB=input type=hidden name=userSession value=","RB=>",LAST);
这个应该放在前一个请求前,不应放在你要提交的这个数据(服务返回的关联数据)请求前;
做关联,取和用是在不同的语句,你现在这样写就是取和用在同一个请求,肯定是不对的,估计你漏了一个页面请求(可能就是你打开网站的登陆Logo页面)
作者: ldf326    时间: 2012-5-24 11:15
回复 17# ymwang119

关联的地方
    vuser_init()
{
        web_reg_save_param("userSession",
                "LB=value=",
                "RB=>\n",
                LAST);



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

return 0;
}
作者: ymwang119    时间: 2012-5-24 15:24
关联的位置确实有问题
作者: 笑痴情    时间: 2013-1-17 12:47
楼主!解决了吗?我遇到的问题和你一样的!
作者: 笑痴情    时间: 2013-1-17 14:55
web_reg_save_param("userSession","LB=userSession value=","RB>",LAST);

用这个当关联函数就可以。
作者: hooghoog    时间: 2015-6-13 10:18
自身返回结果,自身调用
作者: a_hua    时间: 2015-10-28 17:47
问题解决了吗?如何解决,我也遇到同样的问题




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2