51Testing软件测试论坛

标题: 急疯了!单点登录后登陆一个系统保存取JSESSIONID错误, [打印本页]

作者: 高跟鞋跳舞    时间: 2009-7-24 19:32
标题: 急疯了!单点登录后登陆一个系统保存取JSESSIONID错误,
这个问题已经困惑好几天了,请求大家的帮助!

关于单点登录后进入另一个系统取JSESSIONID,保存操作到数据库需要关联第二个,即登录另一个系统前JSESSIONID取数的问题

在第一打开单点登录的页面关联一个JSESSIONID1
{ web_reg_save_param("JSESSIONID1","NotFound=warning","LB=JSESSIONID=","RB=;path=","RelFrameID=ALL",LAST);
web_url("login.jsp",
单点登录后在登录另一系统前关联一个JSESSIONID2
web_reg_save_param("JSESSIONID2","NotFound=warning","LB=JSESSIONID=","RB=; path=","RelFrameID=ALL",LAST);
web_submit_data("login",
提交保存的时候:
        web_custom_request("sbSave.do;JSESSIONID={JSESSIONID2}",
        "URL=http://192.168.15.117:8801/szds/sb/sbSave.do;JSESSIONID={JSESSIONID2}?zjxxFlag=0",
打印出:
获取JSESSIONID1成功,JSESSIONID1是:w7LVKpCCPLb2FG4PG1JryJD51FkB5nJJ8Q0wftkTGLfpf120hT2G!1046294195
JSESSIONID2是:7HpsKpCDthrLLtsfKVh122T3lT6LjLv8tvymLx704VCMj5G4QRNy!1046294195
在Generator中单独运行一个可以成功,但并发多个时只有一个可成功
但是保存那块"sbSave.do;JSESSIONID={JSESSIONID2}"

在Controller中并发多个用户,只有一个成功,其他都失败

[ 本帖最后由 高跟鞋跳舞 于 2009-7-24 20:38 编辑 ]
作者: 高跟鞋跳舞    时间: 2009-7-24 19:36
在view tree中看server response
打开单点登录web_url("login.jsp", 处:
Set-Cookie: JSESSIONID=HnySKn2b9dT0KbLH1VJWjFP3pjTQJqsszRvgcZ10pgRXDTSQn7nW!1873490847; path=/
登录系统web_submit_data("login", 处:
Set-Cookie: JSESSIONID=1kjmKn2L11PHpK9mndQsCmkRsL9jpFpxcLTJyncjjcV81nxfJv06!-1982231255; path=/

clint request提交的快照
录制时的:
POST /szds/sb/sbSave.do;JSESSIONID=1kjmKn2L11PHpK9mndQsCmkRsL9jpFpxcLTJyncjjcV81nxfJv06!-1982231255?
.....
Cookie: JSESSIONID=1kjmKn2L11PHpK9mndQsCmkRsL9jpFpxcLTJyncjjcV81nxfJv06!-1982231255

关联参数后单独跑的:
POST /szds/sb/sbSave.do;JSESSIONID={JSESSIONID2}?zjxxFlag=0 HTTP/1.1
.......
Cookie: JSESSIONID=GG82KpNhv29mqMD6DJvljFZRrT02vRpkLqcpwvHnTs89GBbTRBNx!1046294195

[ 本帖最后由 高跟鞋跳舞 于 2009-7-24 20:19 编辑 ]
作者: 高跟鞋跳舞    时间: 2009-7-24 20:08
注解掉关联那部分
录制时脚本:
        web_custom_request("sbSave.do;JSESSIONID=1kjmKn2L11PHpK9mndQsCmkRsL9jpFpxcLTJyncjjcV81nxfJv06!-1982231255",         "URL=http://192.***/szds/sb/sbSave.do;JSESSIONID=1kjmKn2L11PHpK9mndQsCmkRsL9jpFpxcLTJyncjjcV81nxfJv06!-1982231255?zjxxFlag=0",

注解后脚本:
web_custom_request("sbSave.do",
        "URL=http://192.***/szds/sb/sbSave.do?zjxxFlag=0",

运行脚本出错:tj.c(77): Error -27272: The "URL" argument is missing or empty  [MsgId: MERR-27272]

[ 本帖最后由 高跟鞋跳舞 于 2009-7-24 20:40 编辑 ]
作者: 高跟鞋跳舞    时间: 2009-7-24 20:09
尝试自动关联,也出错
作者: 高跟鞋跳舞    时间: 2009-7-24 20:34
是不是我的付值方式错了呢?
作者: 高跟鞋跳舞    时间: 2009-7-27 09:30
请朋友们指点下,谢谢啦
作者: 高跟鞋跳舞    时间: 2009-7-27 18:05
自己顶一下!
作者: 高跟鞋跳舞    时间: 2009-7-28 09:36
问题还没有解决,请高手帮忙解答
作者: 高跟鞋跳舞    时间: 2009-7-28 11:45
标题: 回复 8# 的帖子
web_reg_save_param("JSESSIONID2","NotFound=warning","LB=JSESSIONID=","RB=; path=","RelFrameID=ALL",LAST);

取JSESSIONID2成功,但JSESSIONID={JSESSIONID2}?

web_reg_save_param("JSESSIONID2","NotFound=warning","LB=JSESSIONID=","RB=; path=","ORD=1",LAST);
取JSESSIONID2失败
作者: 高跟鞋跳舞    时间: 2009-7-28 14:59
web_reg_save_param("JSESSIONID2","NotFound=warning","LB=JSESSIONID=","RB=;","RelFrameId=1",LAST);
web_submit_data("login",

运行结果:登录成功,取JSESSIONID2失败,好象只有RelFrameId=ALL才可以取到JSESSIONID2

[ 本帖最后由 高跟鞋跳舞 于 2009-7-28 15:02 编辑 ]
作者: 高跟鞋跳舞    时间: 2009-7-28 15:31
使用的LR是8.0版本
作者: 高跟鞋跳舞    时间: 2009-7-28 15:37
已和开发人员确人,第一个JSESSIONID1不管,第二个JSESSIONID2应用系统表单提交时需要传给服务器
作者: 高跟鞋跳舞    时间: 2009-7-29 10:18
直接运行登录,结果,单独运行登录成功,并发50个用户,只登录成功50次,并发50个持续运行30分钟,也只登录成功50次,其他运行失败.
作者: 高跟鞋跳舞    时间: 2009-7-29 10:21
登录脚本:
vuser_init()
{
    web_set_max_html_param_len("1024");       

        web_reg_save_param("JSESSIONID1","NotFound=warning","LB=JSESSIONID=","RB=; path=","RelFrameId=ALL",LAST);
    web_reg_save_param("lt","NotFound=warning","LB=<input type=\"hidden\" name=\"lt\" value=\"","RB=\" />","ORD=1",LAST);   
    web_reg_save_param("mysession","NotFound=warning","LB=<input type=\"hidden\" name=\"mysession\" value=\"","RB=\" />","ORD=1",LAST);   
        web_url("login.jsp",
                "URL=http://192.168.15.117:8801/szds/qx/user/login.jsp",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t1.inf",
                "Mode=HTML",
                EXTRARES,
                "Url=http://192.168.15.117:8802/sso/images/loginFS/login032.gif", "Referer=http://192.168.15.117:8802/sso/login?service=http%3A%2F%2F192.168.15.117%3A8801%2Fszds%2Fqx%2Fuser%2Flogin.jsp", ENDITEM,
                "Url=http://192.168.15.117:8802/sso/images/loginFS/btn_loginn.gif", "Referer=http://192.168.15.117:8802/sso/login?service=http%3A%2F%2F192.168.15.117%3A8801%2Fszds%2Fqx%2Fuser%2Flogin.jsp", ENDITEM,
                LAST);
   if(atoi(lr_eval_string("{JSESSIONID1_count}"))>=1)
       lr_message("获取JSESSIONID1成功,JSESSIONID1是:%s",lr_eval_string("{JSESSIONID1_1}"));
    else{
       lr_fail_trans_with_error("获取JSESSIONID1失败!!");
      lr_exit(LR_EXIT_ITERATION_AND_CONTINUE,LR_AUTO);  
    }
        return 0;
}

dl1()
{        
    web_set_max_html_param_len("1024");
        web_add_cookie("ys-ext-comp-1002=o%3Awidth%3Dn%253A271; DOMAIN=192.168.15.117:8801");
    web_reg_save_param("JSESSIONID2","NotFound=warning","LB=JSESSIONID=","RB=; path=","RelFrameId=ALL",LAST);    web_reg_save_param("ticket","NotFound=warning","LB=http://192.168.15.117:8801/szds/qx/user/login.jsp?ticket=","RB=</a>","ORD=1",LAST);
    web_reg_save_param("Login","NotFound=warning","LB=","RB=",LAST);
        //web_reg_save_param("gwDm","NotFound=warning","LB=checked name=\"gwDm\" value=\"","RB=\"/>","ORD=1",LAST);             
        web_submit_data("login",
                "Action=http://192.168.15.117:8802/sso/login?service=http%3A%2F%2F192.168.15.117%3A8801%2Fszds%2Fqx%2Fuser%2Flogin.jsp",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://192.168.15.117:8802/sso/login?service=http%3A%2F%2F192.168.15.117%3A8801%2Fszds%2Fqx%2Fuser%2Flogin.jsp",
                "Snapshot=t2.inf",
                "Mode=HTTP",
                ITEMDATA,
                "Name=sign_cert", "Value=", ENDITEM,
                "Name=user_random", "Value=", ENDITEM,
                "Name=lt", "Value={lt}", ENDITEM,
                "Name=_eventId", "Value=submit", ENDITEM,
                "Name=mysession", "Value={mysession}", ENDITEM,
                "Name=_currentStateId", "Value=", ENDITEM,
                "Name=loginname", "Value={username}", ENDITEM,
                "Name=user_pin", "Value=", ENDITEM,
                "Name=enterpriseno", "Value=", ENDITEM,
                "Name=username", "Value={username}", ENDITEM,
                "Name=password", "Value=123", ENDITEM,
                LAST);
if(atoi(lr_eval_string("{JSESSIONID2_count}"))>=1)
       lr_message("获取JSESSIONID2成功,JSESSIONID2是:%s",lr_eval_string("{JSESSIONID1_1}/{JSESSIONID2_1}"));
    else{
       //lr_fail_trans_with_error("获取JSESSIONID2失败!!JSESSIONID2是:%s");
    lr_fail_trans_with_error("失败返回的页面是:%s",lr_eval_string("{sh}/{username}/{JSESSIONID1_1}/{JSESSIONID2_1}"));
    lr_exit(LR_EXIT_ITERATION_AND_CONTINUE,LR_AUTO);
    }
    web_reg_save_param("getSystemDateAll","NotFound=warning","LB=<item>","RB=</item>","ORD=1",LAST);   
        web_custom_request("CommonService",
                "URL=http://192.168.15.117:8801/szds/CommonService?ACTION=&SERVICE=",
                "Method=POST",
                "Resource=0",
                "RecContentType=text/xml",
                "Referer=http://192.168.15.117:8801/szds/qx/user/bottom.htm",
                "Snapshot=t7.inf",
                "Mode=HTTP",
                "EncType=text/xml; charset=gbk",
                "Body=<?xml version=\"1.0\" encoding=\"gbk\"?>\r\n"
                "<root><foresee_session><service sid=\"class\"><argument><sql></sql><classname>gov.szds.hxzg.sb.common.SbUtil</classname><methodname>getSystemDateAll</methodname></argument></service></foresee_session></root>\r\n"
                "",
                LAST);


        web_custom_request("CommonService_2",
                "URL=http://192.168.15.117:8801/szds/CommonService?ACTION=&SERVICE=",
                "Method=POST",
                "Resource=0",
                "RecContentType=text/xml",
                "Referer=http://192.168.15.117:8801/szds/qx/user/mainFrame.jsp",
                "Snapshot=t8.inf",
                "Mode=HTTP",
                "EncType=text/xml; charset=gbk",
                "Body=<?xml version=\"1.0\" encoding=\"gbk\"?>\r\n"
                "<root><foresee_session><service sid=\"foresee.select\"><argument><sql>job005</sql><param>{SwryDm}</param></argument></service></foresee_session></root>\r\n"
                "",
                LAST);

        return 0;
}

[ 本帖最后由 高跟鞋跳舞 于 2009-7-29 10:25 编辑 ]
作者: love_yebin    时间: 2009-7-29 11:50
看了一下你的问题,有2个疑问

1.单点登录成功了,还要登录 另外一个系统?  还是单点登录 就 OK 了
2.为什么不插入事务区别登录阶段呢?你说的

第二个JSESSIONID2应用系统表单提交时需要传给服务器

按这个思路 ,只需要对 JSESSIONID2 进行 关联 就应该可以了
作者: rickyzhu    时间: 2009-7-29 12:41
就是直接把sessionid2关联就行了,干嘛扯那么复杂?

又是单点登录,又是jsessionid1的,没有关系的别牵扯进来。


把jsessionid1去掉,如果不需要,对jsessionid2关联,从代码看方法你都是知道的。
作者: 高跟鞋跳舞    时间: 2009-7-29 17:17
首先,谢谢楼上两位朋友的支持.
你们的回帖不仅指导了我,而且给了我精神上的支持,谢谢!


vuser_init()  dl() 分别是两个事物,在此只把他们贴在一起.
去掉JSESSIONID1,只关连JSESSIONID2,

加上关联JSESSIONID2的代码,只运行打开单点登录,登录应个系统,即使上面贴出的vuser_init() dl() 和tc()退出事物,并发50个用户,持续运行15分钟,只有50个登录成功,

去掉关联的JSESSIONID2,同样运行上面的,并发50个用户,持续运行15分钟,没有失败的事物.
所以是并发登录时JSESSIONID2取不到.

问题怎样解决呢?迷茫.....,
作者: 高跟鞋跳舞    时间: 2009-7-30 10:21
问题仍然没有解决
作者: love_yebin    时间: 2009-7-30 13:25
标题: 回复 17# 的帖子
并发50个用户,持续15分钟,只有50个成功?  我好奇你这个是做什么操作 ? 登录并发? 如果是这样,你参数够不?参数取值怎么取的,脚本是不是在重复登录?


按照你提供的意思 好像 session2关联不关联 都不会出错,都能通过50个用户 对不 ?
那你并发60个试试 ?
先做一次的,在迭代或者持续
作者: 高跟鞋跳舞    时间: 2009-7-31 10:56
做登录的并发是测试关联JSESSIONID2的登录是否成功
结果是,并发60个用户也是只有60个登录成功,持续多少时间都只有60个通过,退出事物是关闭IE.
参数有4万多个,按顺序号取,unique ,once,(会存在顺序号为1,30的登录用户名称一样的情况)
作者: 高跟鞋跳舞    时间: 2009-7-31 10:56
只要通过一次,在迭代或者持续 都失败
作者: love_yebin    时间: 2009-7-31 15:14
原帖由 高跟鞋跳舞 于 2009-7-31 10:56 发表
做登录的并发是测试关联JSESSIONID2的登录是否成功
结果是,并发60个用户也是只有60个登录成功,持续多少时间都只有60个通过,退出事物是关闭IE.
参数有4万多个,按顺序号取,unique ,once,(会存在顺序号为1,30的登录用 ...



关IE!!!!!!!程序没有退出功能吗?  要知道点击IE的关闭和程序加入注销(退出)结果是不一样的,顺便在问下你,如果你测试结束了,IE肯定是关掉了,这时候IE直接输入你们系统的地址,你进的是登录界面呢?还是直接就进去了。。。。。
如果是直接进去了,你跌代还有意义吗?
作者: 高跟鞋跳舞    时间: 2009-8-3 17:00
程序有注销,但注销后还需要再关闭IE,JSESSIONID才会关闭掉.所以录制脚本时就没有注销直接关闭IE了.

[ 本帖最后由 高跟鞋跳舞 于 2009-8-3 17:03 编辑 ]
作者: 高跟鞋跳舞    时间: 2009-8-3 17:18
添加注销事物后,问题现象仍然一样.
并发时报错:sbtj.c(45): Error -26612: HTTP Status-Code=500 (Internal Server Error) for "http://192.168.15.117:8801/szds/sb/sbSave.do;JSESSIONID={JSESSIONID2}?zjxxFlag=0"
作者: redstar    时间: 2009-8-3 18:43
估计LZ的单点登录是一次登录进去后,登录后的界面有很多其它系统的导航,直接点就登录相应的应用系统了,不用再

输入用户名和密码,即一次登录后,访问其它应用系统系统会自动进行后续登录。

现在你就是在测试多个用户登录后,再访问其它应用系统的并发性能情况,记得单点登录还是有2种策略的填表和身份注

入,不知道你们用哪种?
作者: zhltcp    时间: 2009-8-4 11:02
个人感觉‘JSESSIONID2’的左边界不是‘JSESSIONID=’,应该查看录制脚本后生成的日志文件,搜索第一次产生这个值的地方。
作者: love_yebin    时间: 2009-8-4 11:27
用户 同一个 还是不同的 ?

如果不同 关联 session2,你使用注销  退出,把这段代码放在 end里面  
action里面 仅 要 登录这个动作
作者: 高跟鞋跳舞    时间: 2009-8-4 18:00
原帖由 redstar 于 2009-8-3 18:43 发表
估计LZ的单点登录是一次登录进去后,登录后的界面有很多其它系统的导航,直接点就登录相应的应用系统了,不用再

输入用户名和密码,即一次登录后,访问其它应用系统系统会自动进行后续登录。

现在你就是在测试 ...


登录响应系统,还需要输入用户名和密码,也就在这里获取JSESSIONID2.
其实我感觉在测试环境我们这个单点登录没有多大意义.生产环境上要用到这个单点登录.
我们的测试环境是这样布置的:
打开一个IE,输入http://192.168.15.117:8801/login.jsp (系统A的地址)回车,
页面跳转到http://192.168.15.117:8802/sso/l ... %2Fuser%2Flogin.jsp 在这里输入登录系统A的用户名和密码,回车,页面跳转到需要保存提交的系统A中:http://192.168.15.117:8801/login ... 2beBogSd59Wkfxku-20

为什么要输入8801跳到8802呢?环境部署人员说为了从其他地方登录也一起共用这个统一权限.如打开一个IE,输入http://192.168.15.117:8803/login.jsp(系统B) 回车,会跳到8002上,输入用户名和密码才会跳到系统B中去.

[ 本帖最后由 高跟鞋跳舞 于 2009-8-4 18:21 编辑 ]
作者: 高跟鞋跳舞    时间: 2009-8-4 18:02
原帖由 zhltcp 于 2009-8-4 11:02 发表
个人感觉‘JSESSIONID2’的左边界不是‘JSESSIONID=’,应该查看录制脚本后生成的日志文件,搜索第一次产生这个值的地方。


日志中为JSESSIONID=dm1rKvzWQFyV1nYnsqXXqZfcyr8F1QR7pwJZBQNM0vKb4vp8TSwp!-1590315519; path=/
作者: 高跟鞋跳舞    时间: 2009-8-4 18:13
原帖由 love_yebin 于 2009-8-4 11:27 发表
用户 同一个 还是不同的 ?

如果不同 关联 session2,你使用注销  退出,把这段代码放在 end里面  
action里面 仅 要 登录这个动作

把注销  退出,把这段代码放在 end里面 单独脚本运行,提交保存成功,数据库中可查到该笔记录.但是仍然
Custom Request: sbSave.do;JSESSIONID={JSESSIONID2} ,并发很容易锁提交保存涉及到的表.

但是登录关联的地方打出已经取到了JSESSIONID2.
运行日志:web_submit_data("login") highest severity level was "warning", 187523 body bytes, 7903 header bytes, 136 chunking overhead bytes          [MsgId: MMSG-26387]
获取JSESSIONID2成功,JSESSIONID2是:Npg2K4QTpyJBJp3C54f1QSLPcf9HVgc77gfcnvD68CnktwdXJnWn!300117558

[ 本帖最后由 高跟鞋跳舞 于 2009-8-4 18:30 编辑 ]




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