51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 13502|回复: 29
打印 上一主题 下一主题

[原创] 急疯了!单点登录后登陆一个系统保存取JSESSIONID错误,

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-7-24 19:32:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个问题已经困惑好几天了,请求大家的帮助!

关于单点登录后进入另一个系统取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 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-7-24 19:36:46 | 只看该作者
在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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-7-24 20:08:31 | 只看该作者
注解掉关联那部分
录制时脚本:
        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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-7-24 20:09:10 | 只看该作者
尝试自动关联,也出错
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-7-24 20:34:46 | 只看该作者
是不是我的付值方式错了呢?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-7-27 09:30:59 | 只看该作者
请朋友们指点下,谢谢啦
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-7-27 18:05:29 | 只看该作者
自己顶一下!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2009-7-28 09:36:04 | 只看该作者
问题还没有解决,请高手帮忙解答
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2009-7-28 11:45:43 | 只看该作者

回复 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失败
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2009-7-28 14:59:56 | 只看该作者
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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2009-7-28 15:31:36 | 只看该作者
使用的LR是8.0版本
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2009-7-28 15:37:30 | 只看该作者
已和开发人员确人,第一个JSESSIONID1不管,第二个JSESSIONID2应用系统表单提交时需要传给服务器
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2009-7-29 10:18:40 | 只看该作者
直接运行登录,结果,单独运行登录成功,并发50个用户,只登录成功50次,并发50个持续运行30分钟,也只登录成功50次,其他运行失败.
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2009-7-29 10:21:32 | 只看该作者
登录脚本:
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 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2009-7-29 11:50:48 | 只看该作者
看了一下你的问题,有2个疑问

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

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

按这个思路 ,只需要对 JSESSIONID2 进行 关联 就应该可以了
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2009-7-29 12:41:52 | 只看该作者
就是直接把sessionid2关联就行了,干嘛扯那么复杂?

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


把jsessionid1去掉,如果不需要,对jsessionid2关联,从代码看方法你都是知道的。
回复 支持 反对

使用道具 举报

该用户从未签到

17#
 楼主| 发表于 2009-7-29 17:17:01 | 只看该作者
首先,谢谢楼上两位朋友的支持.
你们的回帖不仅指导了我,而且给了我精神上的支持,谢谢!


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

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

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

问题怎样解决呢?迷茫.....,
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2009-7-30 10:21:31 | 只看该作者
问题仍然没有解决
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2009-7-30 13:25:57 | 只看该作者

回复 17# 的帖子

并发50个用户,持续15分钟,只有50个成功?  我好奇你这个是做什么操作 ? 登录并发? 如果是这样,你参数够不?参数取值怎么取的,脚本是不是在重复登录?


按照你提供的意思 好像 session2关联不关联 都不会出错,都能通过50个用户 对不 ?
那你并发60个试试 ?
先做一次的,在迭代或者持续
回复 支持 反对

使用道具 举报

该用户从未签到

20#
 楼主| 发表于 2009-7-31 10:56:05 | 只看该作者
做登录的并发是测试关联JSESSIONID2的登录是否成功
结果是,并发60个用户也是只有60个登录成功,持续多少时间都只有60个通过,退出事物是关闭IE.
参数有4万多个,按顺序号取,unique ,once,(会存在顺序号为1,30的登录用户名称一样的情况)
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-19 05:34 , Processed in 0.075830 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表