xiongxixin 发表于 2012-5-9 17:56:47

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;


再次谢谢各位大大们~

jj_ljw 发表于 2012-5-9 19:31:36

web_reg_save_param是关联服务器返回值用的,必须放在返回值的代码前面。现在userSession根本取不到值,那也没法运行了

hclovezz1314 发表于 2012-5-10 10:02:31

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:01

这个是要做关联才对

xiongxixin 发表于 2012-5-10 10:36:19

回复 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).

请问下这个是什么原因呢~谢谢了~

xiongxixin 发表于 2012-5-10 10:38:18

回复 4# zhoward


    我就是做了关联,初次接触关联,昨天百度文库里找了个关联的教程看了看,说是要对关联的做参数化,我就做了T.T,结果就报错了,现在去掉参数化之后再次编译时报错提示参数无效~~:Q

ymwang119 发表于 2012-5-10 10:42:48

把修改后的代码贴出来

xiongxixin 发表于 2012-5-10 10:49:07

回复 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:18

参数化的意思是要把你所做的关联userSession值用{userSession}参数化......另外,你设置了集合点,那思考时间应当要放在集合点外,不然你这算出来的事务时间就差太多了。

li373935562 发表于 2012-5-10 15:44:22

你的情况一般三种可能:
1. 服务器挂掉了。你先手工操作一下看看是不是服务器真的挂掉了。
2.你的关联左右边界出了错误。到Response中查看一下是不是左右边界搞错了。
3. 你关联的数据太长超过了默认可以关联的最大长度。可以通过web_set_max_html_param_len函数设置关联数据的最大长度,不过这个可能性在你现在的脚本中不存在。

ymwang119 发表于 2012-5-10 16:21:42

本帖最后由 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:49

11#有的特殊字符要转义,需要注意一下

bob123654 发表于 2012-5-11 09:07:33

回复 1# xiongxixin


    关联的左右边界错了,你关联的userSession值取到的实际值和你预期的值不一样的,所以你向服务器发送请求的时候,服务器没办法相应你的请求的

hongchongren 发表于 2012-5-14 15:19:45

别那么长的左边界,就value=就OK了,然后看看在log里是第几个"value=".

hongchongren 发表于 2012-5-14 15:20:11

别那么长的左边界,就value=就OK了,然后看看在log里是第几个"value=".

joykao 发表于 2012-5-21 14:55:36

关联错了哦。。。:shutup:

ymwang119 发表于 2012-5-21 15:04:43

回复 12# guchenggao


    多谢提示,已改正

Donly 发表于 2012-5-21 17:26:57

我怎么觉得楼主不应该用关联,而是应该用参数化。。。

花儿开在春风里 发表于 2012-5-23 16:48:40

userSession应该是关联

qvbfnsc 发表于 2012-5-23 18:51:50

web_reg_save_param("userSession","LB=input type=hidden name=userSession value=","RB=>",LAST);
这个应该放在前一个请求前,不应放在你要提交的这个数据(服务返回的关联数据)请求前;
做关联,取和用是在不同的语句,你现在这样写就是取和用在同一个请求,肯定是不对的,估计你漏了一个页面请求(可能就是你打开网站的登陆Logo页面)
页: [1] 2
查看完整版本: LR中关于关联和参数化的一点问题求解