51Testing软件测试论坛

标题: sessionid的问题 [打印本页]

作者: zhuyuancan    时间: 2008-5-20 17:46
标题: sessionid的问题
在一个测试当中,录制脚本时脚本当中没有出现sessionid这个参数的,,但是开发是根据sessionid来判断在线用户数的,,在浏览器opera的相关设置中可以找到这个sessionid,入图所示:
现在我想在LR脚本中对其进行这个sessionid进行关联.这样我就可以给每个用户设置迭代运行多久了.该如何设置呢??

[ 本帖最后由 zhuyuancan 于 2008-5-20 17:48 编辑 ]
作者: 国米一卡通    时间: 2008-5-20 20:19
标题: 我看到有一个帖子已经解决这个问题
我看到有一个帖子已经解决这个问题,你可以去看看,这里面的原理都一样,只是要注意细节的东西
当用户登录时,会产生一个Sessionid号,访问结束后,该
Sessionid便会失效。我录制的时候,在脚本里面获取到了该Sessionid,但当我再
回放的时候,这个Sessionid已经无效了,所以我需要把这个Sessionid作为一个
动态数据,当我一登录的时候,便获取一个新的有效的Sessionid,然后通过函数
把它保存下来
web_reg_save_param("WCSParam_Text1",
"LB=ProcessID=",
"RB=;",
"Ord=1",
"RelFrameId=1",
"Search=body",
LAST);
那么后面用到的页面中就可以调用WCSParam_Text1这个参数使用这个新的
Sessionid号。这是个动态数据很典型的例子,
web_submit_data("w_onload_check.asp",
"Action=http://gsserver3/cwbase/sys/userlogin/w_onload_check.asp",
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=http://gsserver3/cwbase/sys/userlogin/index.asp",
"Snapshot=t3.inf",
"Mode=HTML",
ITEMDATA,
"Name=hdclentip", "Value=chenjing", ENDITEM,
"Name=hdProcessID",
"Value=F8E5ACCD372845C38C7E1981A342F703", ENDITEM,
"Name=selInstanceid", "Value=T01", ENDITEM,
www.51testing.com
9
"Name=TxtUserID", "Value={RYBH}", ENDITEM,
"Name=TxtPassword", "Value=cwpass", ENDITEM,
"Name=Txtkjdate", "Value=2003.01.06", ENDITEM,
"Name=selInstancetxt", "Value=性能测试用(中型数据库)", ENDITEM,
"Name=selInstance", "Value=T01", ENDITEM,
LAST);
web_url("loginpage.aspx",
"URL=http://gsserver3/cwbase/sys/menushow/loginpage.aspx?Proces
sID={WCSParam_Text2}",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t4.inf",
"Mode=HTML",
LAST);
理解web_reg_save_param函数,
int web_reg_save_param (const char *ParamName, <List of Attributes>, LAST);
第一部分:参数名字,用双引号括起,逗号分开;
第二部分:List of Attributes,包括:LB、RB、RelFrameID、Ord、Search、SaveOffset、
SaveLen等,
第三部分:LAST,结束标志。
左边界,右边界到底是个什么概念?
LB是左边界,要查找的字符串左面的边界值,即位于查找字符串的最左边的字符串,
RB是右边界,要查找的字符串右面的边界值,即位于查找字符串的最右边的字符串,
比如说吧,程序中有这么一个赋值,ProcessID
=A53625E18440FCE81F26DCE712E65EBA;如果ProcessID的值是动态的,我想使用动
态变量,那我设定查找左边界为LB=ProcessID=,右边界为RB=;的字符,如果找到
了,就替换成变量.
Search是指查找范围,就是说在哪里查找这些值,可以取这样几个值,我们一般设
为ALL,Body等即可。
Headers (Search only the headers),
Body (search only Body data, not headers),
Noresource (search only the html body, excluding all headers and resources),
ALL (search Body and headers). The default value is ALL.
RelFrameID: The hierarchy level of the HTML page relative to the requested
URL.一般取1
ORD: This parameter, also known as Instance, indicates the ordinal or
作者: zhuyuancan    时间: 2008-5-21 09:19
感谢2#的回答,,但是我在脚本里没有获取到这个sessionID,,,重复运行脚本时,在opera中可以看到每次运行一次都是不同的seesionid
作者: yysheng2005    时间: 2009-7-18 22:43
顶,非常的好
作者: wen922    时间: 2009-7-19 21:32
sessionid需要去关联抓取的。每次访问都会是不同的。可以借助第3方工具来获取sessionid,然后抓取左右边界。也可以用LR的自动关联啊。。
作者: shanxi    时间: 2009-7-21 11:05
Sessionid 是由服务器管理的 由服务器决定是否失效
作者: archonwang    时间: 2009-7-21 11:16
怎么感觉是个关联问题?
作者: coolyy    时间: 2012-8-15 15:19
我的脚本里也获取不到SESSION ID。与楼主问题一样,怎么办




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