急疯了!单点登录后登陆一个系统保存取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 编辑 ] 在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 编辑 ] 注解掉关联那部分
录制时脚本:
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
[ 本帖最后由 高跟鞋跳舞 于 2009-7-24 20:40 编辑 ] 尝试自动关联,也出错 是不是我的付值方式错了呢? 请朋友们指点下,谢谢啦 自己顶一下! 问题还没有解决,请高手帮忙解答
回复 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失败 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 编辑 ] 使用的LR是8.0版本 已和开发人员确人,第一个JSESSIONID1不管,第二个JSESSIONID2应用系统表单提交时需要传给服务器 直接运行登录,结果,单独运行登录成功,并发50个用户,只登录成功50次,并发50个持续运行30分钟,也只登录成功50次,其他运行失败. 登录脚本:
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 编辑 ] 看了一下你的问题,有2个疑问
1.单点登录成功了,还要登录 另外一个系统?还是单点登录 就 OK 了
2.为什么不插入事务区别登录阶段呢?你说的
第二个JSESSIONID2应用系统表单提交时需要传给服务器
按这个思路 ,只需要对 JSESSIONID2 进行 关联 就应该可以了 就是直接把sessionid2关联就行了,干嘛扯那么复杂?
又是单点登录,又是jsessionid1的,没有关系的别牵扯进来。
把jsessionid1去掉,如果不需要,对jsessionid2关联,从代码看方法你都是知道的。 首先,谢谢楼上两位朋友的支持.
你们的回帖不仅指导了我,而且给了我精神上的支持,谢谢!
vuser_init()dl() 分别是两个事物,在此只把他们贴在一起.
去掉JSESSIONID1,只关连JSESSIONID2,
加上关联JSESSIONID2的代码,只运行打开单点登录,登录应个系统,即使上面贴出的vuser_init() dl() 和tc()退出事物,并发50个用户,持续运行15分钟,只有50个登录成功,
去掉关联的JSESSIONID2,同样运行上面的,并发50个用户,持续运行15分钟,没有失败的事物.
所以是并发登录时JSESSIONID2取不到.
问题怎样解决呢?迷茫....., 问题仍然没有解决
回复 17# 的帖子
并发50个用户,持续15分钟,只有50个成功?我好奇你这个是做什么操作 ? 登录并发? 如果是这样,你参数够不?参数取值怎么取的,脚本是不是在重复登录?按照你提供的意思 好像 session2关联不关联 都不会出错,都能通过50个用户 对不 ?
那你并发60个试试 ?
先做一次的,在迭代或者持续 做登录的并发是测试关联JSESSIONID2的登录是否成功
结果是,并发60个用户也是只有60个登录成功,持续多少时间都只有60个通过,退出事物是关闭IE.
参数有4万多个,按顺序号取,unique ,once,(会存在顺序号为1,30的登录用户名称一样的情况)
页:
[1]
2