51Testing软件测试论坛

标题: 急疯了,LR手动关联后,jsessionid={jsessionid}未取到关联的值 [打印本页]

作者: springwan    时间: 2013-7-9 20:18
标题: 急疯了,LR手动关联后,jsessionid={jsessionid}未取到关联的值
这个问题一直困惑我很久,今天又碰到了,看到很多朋友也遇到相同的问题,发此贴,希望高手能够解决!
背景:
单点登录时获取jsessionid,在登录之前,action()里进行手动关联:
关联的代码:
        web_reg_save_param("jsessionid",
                "LB/IC=jsessionid=",
                "RB/IC=\"",
                "Ord=1",
                "NotFound=WARNING",
                "Search=Body",
                LAST);
        web_reg_save_param("lt",
                "LB/IC=<input type=\"hidden\" name=\"\lt\" value=\"",
                                 "RB/IC=\"/>",
                "Ord=1",
                "NotFound=WARNING",
                "Search=Body",LAST);


        web_url("check_cert_status.jsp", --打开此页面会获取到jsessionid

在登录动作中的关联:
login()
{        web_submit_data("login;jsessionid={jsessionid}",
                "Action=http://192.168.1.18:9001/cas_61/login;jsessionid={jsessionid}",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://192.168.1.18:9001/cas_61/login",
                "Snapshot=t3.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=username", "Value=12303013070043", ENDITEM,
                "Name=password", "Value=1234", ENDITEM,
                "Name=lt", "Value={lt}", ENDITEM,
                "Name=_eventId", "Value=submit", ENDITEM,
                "Name=submit", "Value=登录", ENDITEM,
                EXTRARES,
                "Url=images/menulist.gif", ENDITEM,
                "Url=images/book_next.png", ENDITEM,
                "Url=../favicon.ico", "Referer=", ENDITEM,
                LAST);
        return 0;}

回放时报错:
Error -26612: HTTP Status-Code=500 (Internal Server Error) for "http://192.168.1.18:9001/cas_61/login;jsessionid=qTx4Rb9CMWfn3MCYrwhwntp4Yb1Z3FdvcGVRGKZDQ8CnvFwLlg1W!79763331"          [MsgId: MERR-26612]
web_submit_data("login;jsessionid={jsessionid}") highest severity level was "ERROR", 5637 body bytes, 808 header bytes          [MsgId: MMSG-26388]
作者: 云层    时间: 2013-7-10 09:45
日志不是已经关联到了么,出错应该是因为你这个数据给服务器服务器认为有问题导致的,而不是你关联的问题
作者: springwan    时间: 2013-7-10 10:21
谢谢云层
我也感觉关联取到了值,但是不知道怎样才可以正确赋值,传送到服务器中。
请指教,谢谢!
作者: star_xing815    时间: 2013-7-10 11:24
同有这样的疑惑,这个数据怎样才能正确取到呢?
作者: springwan    时间: 2013-7-10 11:44
是的,看到好多帖子关于这个问题,但都没有解决的办法,期待云层等高手帮助!
作者: 云层    时间: 2013-7-10 15:30
3个字,问开发
作者: springwan    时间: 2013-7-10 16:37
web_reg_save_param("jsessionid",
                "LB/IC=cas_61/login;jsessionid=",
                "RB/IC=\"",
                "Ord=1",
                "NotFound=WARNING",
                "Search=All",
                LAST);

        web_reg_save_param("lt",
                "LB/IC=<input type=\"hidden\" name=\"lt\"\r\n    value=\"",
                "RB/IC=\"",
                "Ord=1",
                "NotFound=WARNING",
                "Search=All",
                LAST);
        web_url("check_cert_status.jsp",
                "URL=http://192.168.3.18:9014/cas_61/check_cert_status.jsp",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t2.inf",
                "Mode=HTML",
                EXTRARES,
                "Url=images/livecom_h_default_ngls_str.jpg", "Referer=http://192.168.3.18:9014/cas_61/login", ENDITEM,
                "Url=images/dot-h.gif", "Referer=http://192.168.3.18:9014/cas_61/login", ENDITEM,
                "Url=../favicon.ico", "Referer=", ENDITEM,
                LAST);
   lr_output_message("the jsessionid is: %s", lr_eval_string("{jsessionid}"));
  lr_output_message("the It is: %s", lr_eval_string("{It}"));

回放结果:Action.c(43): the jsessionid is: 6LR5RdXTKWNfFsvncykLy4txXMG6Lcthw68kLJMp5MTH5dSQv99C!79763331
Action.c(44): the It is: {It}
---
        web_submit_data("login;jsessionid={jsessionid}",
                "Action=http://192.168.3.18:9014/cas_61/login;jsessionid={jsessionid}",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://192.168.3.18:9014/cas_61/login",
                "Snapshot=t3.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=username", "Value=4403013070043", ENDITEM,
                "Name=password", "Value=Test1234", ENDITEM,
                "Name=lt", "Value={lt}", ENDITEM,
                "Name=_eventId", "Value=submit", ENDITEM,
                "Name=submit", "Value=登录", ENDITEM,
                EXTRARES,
                "Url=images/menulist.gif", ENDITEM,
                "Url=images/book_next.png", ENDITEM,
                "Url=../favicon.ico", "Referer=", ENDITEM,
                LAST);
    lr_output_message("the jsessionid is: %s", lr_eval_string("{jsessionid}"));
回放结果:lgoin.c(4): Error -26612: HTTP Status-Code=500 (Internal Server Error) for "http://192.168.3.18:9014/cas_61/login;jsessionid=6LR5RdXTKWNfFsvncykLy4txXMG6Lcthw68kLJMp5MTH5dSQv99C!79763331"          [MsgId: MERR-26612]
可见是{It}没有取到值导致登录失败,打开http://192.168.3.18:9014/cas_61/check_cert_status.jsp页面,查看源代码
<input type="hidden" name="lt" value="_cEA9E6218-B5B9-7379-8862-EB3ED0239B6F_kEE910C9A-FA7F-04A6-BDC1-7B52C41363E9" />
It的左右边界应该没放错,位置也应该在http://192.168.3.18:9014/cas_61/check_cert_status.jsp,如果是的话也应该没错。
那么,问题出在哪里呢?
作者: springwan    时间: 2013-7-10 16:57
在回放的日志中有:
Action.c(31): Warning -26377: No match found for the requested parameter "lt". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size          [MsgId: MWAR-26377]
作者: 云层    时间: 2013-7-10 17:15
你lt没数据,出错自然而然了
作者: springwan    时间: 2013-7-10 17:24
It变量和jsessionid在一各body中,现在关联和jsessionid的关联放同一各jsp前,位置应该没有错
另从页面的源代码中查看:
<input type="hidden" name="lt" value="_cEA9E6218-B5B9-7379-8862-EB3ED0239B6F_kEE910C9A-FA7F-04A6-BDC1-7B52C41363E9" />

        web_reg_save_param("lt",
                "LB/IC=<input type=\"hidden\" name=\"lt\"\r\n    value=\"",
                "RB/IC=\"",

                "Ord=1",
                "NotFound=WARNING",
                "Search=All",
                LAST);
错了吗?把"Search=All",改成"Search=body",也同样取不到
作者: springwan    时间: 2013-7-10 21:25
自己顶一下
作者: springwan    时间: 2013-7-10 23:04
[img][/img]
作者: springwan    时间: 2013-7-10 23:04
顶一下
作者: shigui3615    时间: 2013-7-11 10:53
将关联函数  "LB/IC=<input type=\"hidden\" name=\"lt\"\r\n    value=\"", 的\r\n 删掉试试,从你10楼服务器返回的信息看,你的左边界设的不对。
作者: springwan    时间: 2013-7-11 12:46
回复 14# shigui3615


去掉也仍然是报此错,

感谢你的回复
作者: 450174661    时间: 2013-7-11 13:18
手动关联有时候是会出现一些奇怪的问题,自动关联试试
作者: 450174661    时间: 2013-7-11 13:19
手动关联有时候是会出现一些奇怪的问题,我之前也出现一模一样的关联代码,一个是好的 ,一个就是报错;


你试试自动关联,看看行不行,行的话,再与你的手动关联脚本对比,看看手动关联脚本问题处在哪里
作者: springwan    时间: 2013-7-11 14:10
自动关联jsessionid的错,It系统没有捕获到自动关联,
作者: hsr13    时间: 2013-7-12 01:03
回放的日志中有:
Action.c(31): Warning -26377: No match found for the requested parameter "lt". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size         

It返回的"Value"太长,默认无法存放到It变量中,请在关联函数web_reg_save_param之前加一句:web_set_max_html_param_len("1024"); 就不会报size错误了,这样It返回的值就能保存下来,希望能解决你的问题。
作者: new_lio    时间: 2013-7-12 17:56
这根本没到1024这个长度
管理左右边界是不要取值的

你的那个jsessionid关联的值,能成功 跑通吗
能跑通,就要仔细查看下源码了,那个关联到值的左右边界,明显不在你贴的那句代码里面
作者: fuyuguang2013    时间: 2013-7-12 21:18
回复 1# springwan


jssessionid这个不用关联,你试试?
作者: liuxueyi    时间: 2013-7-13 11:30
查看录制时的报文,打印获取到的信息,比较下看看一致不(格式一致)。也许你的边界取错了。
作者: wawu14    时间: 2013-7-13 15:50
你这个问题很简单嘛,已经很明显了,是it没关联到,为什么没关联到,因为看看你设置的左边界就知道了: <input type="hidden" name="lt"   
value="XXXX"
你的返回肯定是如上的,中间有换行和空格,肯定是空格数不对咯,解决方法有二:
(1)在请求返回内容里找找有没有其他唯一性的,能关联出it取值的,不换行的
(2)用左右边界分别为<input type="hidden" name="lt"   和 稍微后面一点的边界,先把这样关联出来的值取到,这样你就能知道中间到底是\r\n后面几个空格了
作者: springwan    时间: 2013-7-14 12:36
jsessionid能取到,It取值不到
作者: springwan    时间: 2013-7-14 12:41
谢谢这么多热心的朋友回帖。
附近是源代码,请查看!
作者: springwan    时间: 2013-7-14 12:46
回复 23# wawu14


    谢谢,曾经尝试过用web_reg_save_param_ex也失败。

附件是LR脚本,请查看
作者: springwan    时间: 2013-7-14 12:48
谢谢这么多热心的朋友回帖。

尝试过使用web_reg_save_param_ex进行关联,也么有取到It的值
作者: fbccee    时间: 2013-7-16 10:06
这种关联性的报错,只有2个可能。
1、server返回的html内容中,确实没有该内容
2、你关联的左右边界不对,或者取值的序号不对
你可以去分析下
作者: 梦之秋    时间: 2013-7-17 09:53
回复 7# springwan


  web_reg_save_param("lt",
                "LB/IC=<input type=\"hidden\" name=\"lt\"\r\n    value=\"",
                "RB/IC=\"",
                "Ord=1",
                "NotFound=WARNING",
                "Search=All",
                LAST);

  lr_output_message("the It is: %s", lr_eval_string("{It}"));


一个lt,另一个是It吧?
作者: 梦之秋    时间: 2013-7-17 10:00
回复 1# springwan


    web_submit_data("login;jsessionid={jsessionid}",
                "Action=http://192.168.1.18:9001/cas_61/login;jsessionid={jsessionid}",
              .....
回放时报错:
for "http://192.168.1.18:9001/cas_61/login;jsessionid=qTx4Rb9CMWfn3MCYrwhwntp4Yb1Z3FdvcGVRGKZDQ8CnvFwLlg1W!79763331"          [MsgId: MERR-26612]


1.这个你从页面确认下 jsessionid的值是你获取那样的格式长度吗? 会不会获取的值不对(长了或短了)。
2. web_submit_data第一个参数是步骤的名称 可以直接随便写(去掉jsessionid={jsessionid}"试试,只要login即可)。
作者: andyyoung    时间: 2013-7-17 16:00
web_concurrent_start/end
你看看脚本中有没有这个东西,注掉看看。
作者: sushe2009    时间: 2013-7-18 20:52
把"Search=All"去掉,日常工作感觉加了这个容易找不到关联内容。
作者: sushe2009    时间: 2013-7-18 20:53
把"Search=All"去掉,日常工作感觉加了这个容易找不到关联内容。
自我感觉。
作者: sushe2009    时间: 2013-7-18 20:55
把"Search=All"去掉,日常工作感觉加了这个容易找不到关联内容。
自我感觉。
作者: beyond-lee    时间: 2013-7-19 09:15
录制的代码中的左边界没有<input type=\"hidden\" ,应该还是边界取的有问题。
左边界应该可以name="lt“
可以试下是不是这样。
作者: lingyun1104    时间: 2013-7-19 14:16
明显左右边界的问题,你试下下面这个。
web_reg_save_param("lt",
                 "LB/IC= name=\""lt\"" value=\"",
                 "RB/IC=\"",
                 "Ord=1",
                 "NotFound=WARNING",
                 "Search=All",
                 LAST);
作者: intoky    时间: 2013-7-20 23:02
如果页面有记住密码功能 可以输入网址直接进入的话  那是不是不用关联了啊 ?
作者: 无敌小黑    时间: 2015-11-9 18:19
楼主,我也遇到你一样的问题了,你当时是怎么解决的
作者: 无敌小黑    时间: 2015-11-9 18:21
楼主我也遇到你一样的问题了,lt和jessionid,不知道怎么搞,而且那个jessionid时有时无,醉醉的,你当时是怎么解决的,能不能跟我说说方法啊???
作者: xiaozongzi    时间: 2015-12-19 17:05
我也遇到同样问题。楼主最后怎么解决的?
作者: xiaozongzi    时间: 2015-12-19 17:07
这个做jsession和lt关联后,在回放日志里会有很多ticket值是变化的,所以我又尝试ticket关联,但仍然没有绕过去。求破法




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