51Testing软件测试论坛
标题:
在生成日志中取关联值,为何总是提示找不到边界值之间的参数呢?
[打印本页]
作者:
very_seven
时间:
2010-8-2 17:03
标题:
在生成日志中取关联值,为何总是提示找不到边界值之间的参数呢?
我录制了一段脚本,需要做手动关联,要关联的数据在
生成日志
中,如下:
****** Response Header For Transaction With Id 55 ******
result=ok,authStr=
h79huKF6yu65YGQWuwjAqrHHkU2j1orqMz0vn0SLHhiIdg1x83oLHttZShSurUP
$$$$$$ Response Header For Transaction With Id 55 Ended $$$$$$
然后我在LR的代码中写了个关联函数,如下:
web_custom_request("login.cgi",
"URL=http://192.168.8.223/login.cgi?useajax=true",
"Method=POST",
"Resource=1",
"Referer=http://192.168.8.223/",
"EncType=",
LAST);
web_reg_save_param ("authStr",
"NOTFOUND=ERROR",
"LB=result=ok,authStr=",
"RB=\r" ,
"ORD=1", LAST );
web_url("index.htm",
"URL=http://192.168.8.223/index.htm?authStr={authStr}",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
现在每次运行,在回放日志中提示:
Action.c(39): 错误 -26377: 找不到请求的参数“authStr”的匹配项。检查请求的边界是否存在于响应数据中。此外,如果要保存的数据超过 256 个字节,请使用 web_set_max_html_param_len 增加参数大小 [MsgId: MERR-26377]
Action.c(39): 通知: 正在保存参数“authStr = ”
请教各位是我关联边界值写错了吗?我觉得好像不是这个原因,因为我换了个比较好认的边界取值,还是得不到参数值,是不是不能在生成日志中做关联呢,论坛很多关联方法中都是说在回放日志中取关联值的。
可能描述得不是很清楚,附上图片,麻烦各位了,谢谢!
作者:
xueying1123
时间:
2010-8-2 17:16
你要匹配的关联值是在
http://192.168.8.223/login.cgi?useajax=true
页面中吗?
那web_reg_save_param应该放在页面请求“web_custom_request("login.cgi",……”之前
作者:
very_seven
时间:
2010-8-2 17:37
标题:
回复 2# 的帖子
我要匹配的关联值时在
http://192.168.8.223/index.htm?a ... tgW1UoCuDWqUC1zF7W7
页面中,所以我的web_reg_save_param函数是放在下面这个代码之前的
web_url("index.htm",
"URL=http://192.168.8.223/index.htm?authStr={authStr}",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
作者:
xueying1123
时间:
2010-8-2 17:56
有点乱……
authStr是通过请求下面的页面得到的参数
而下面的页面(
http://192.168.8.223/index.htm?authStr=
{authStr})中需要调用还没有赋值的参数
作者:
skyzhu
时间:
2010-8-2 18:01
标题:
回复 3# 的帖子
web_url("index.htm", 只是你要使用的地方吧,一个静态页面能有什么关联的。。。
就像2#说的,web_custom_request("login.cgi", 才是你要得到值的地方
关联参数名叫{authStr} 。。。还没开始找,又给这个请求的链接里拼上{authStr} 。。。能有才出奇了
作者:
msnshow
时间:
2010-8-2 21:44
很明显,你的web_reg_save_param 放的地方不对,不可能从你要用到这个参数的页面去取这个参数的值
作者:
PrefTest
时间:
2010-8-2 22:22
web_reg_save_param ("authStr",
"NOTFOUND=ERROR",
"LB=result=ok,authStr=",
"RB=\r" ,
"ORD=1", LAST );
web_custom_request("login.cgi",
"URL=http://192.168.8.223/login.cgi?useajax=true",
"Method=POST",
"Resource=1",
"Referer=http://192.168.8.223/",
"EncType=",
LAST);
web_url("index.htm",
"URL=http://192.168.8.223/index.htm?authStr={authStr}",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
作者:
very_seven
时间:
2010-8-3 10:32
我将web_reg_save_param函数放到了
web_custom_request("login.cgi",
"URL=http://192.168.8.223/login.cgi?useajax=true",
"Method=POST",
"Resource=1",
"Referer=http://192.168.8.223/",
"EncType=",
LAST);
之前,但是还是找不到这个数据,我的所有的脚本如下:
Action()
{
web_set_user("root",
lr_decrypt("4c523082364870665d0e2264"),
"192.168.8.223:80");
web_url("192.168.8.223",
"URL=http://192.168.8.223/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
lr_think_time(7);
web_set_max_html_param_len("1516");
web_reg_save_param ("authStr",
"NOTFOUND=ERROR",
"LB=result=ok,",
"RB=Str=" ,
"ORD=1", LAST );
web_custom_request("login.cgi",
"URL=http://192.168.8.223/login.cgi?useajax=true",
"Method=POST",
"Resource=1",
"Referer=http://192.168.8.223/",
"EncType=",
LAST);
web_url("index.htm",
"URL=http://192.168.8.223/index.htm?authStr=
7q2UqdhlbyeH9Ky4xxQX0CW9iplLPxJEG5C9DDIgSQuctgW1UoCuDWqUC1zF7W7
",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
web_url("top.htm",
"URL=http://192.168.8.223/top.htm?authStr=
7q2UqdhlbyeH9Ky4xxQX0CW9iplLPxJEG5C9DDIgSQuctgW1UoCuDWqUC1zF7W7
",
"Resource=0",
"RecContentType=text/html",
"Referer=http://192.168.8.223/index.htm?authStr=
7q2UqdhlbyeH9Ky4xxQX0CW9iplLPxJEG5C9DDIgSQuctgW1UoCuDWqUC1zF7W7
",
"Snapshot=t3.inf",
"Mode=HTML",
LAST);
我的本意是想将黑体部分的字符关联,然后我试着将web_reg_save_param函数放在每个脚本函数之前,但是每次都提示:
Action.c(33): 警告 -26567: 未检测到任何 HTTP 状态行。以上的未定数据和目前接收的其他数据将作为“
http://192.168.8.223/login.cgi?useajax=true
”的不带标头的正文进行处理 [MsgId: MWAR-26567]
Action.c(33): 错误 -26377: 找不到请求的参数“authStr”的匹配项。检查请求的边界是否存在于响应数据中。此外,如果要保存的数据超过 1516 个字节,请使用 web_set_max_html_param_len 增加参数大小 [MsgId: MERR-26377]
唉,问题还是没有解决,不过多谢各位了,我会继续努力学习的
作者:
very_seven
时间:
2010-8-3 11:54
我在
回放日志
里找了需要关联的字符串,发现服务器响应的消息里没有我要的信息,回放日志如下:
Action.c(33): 为“
http://192.168.8.223/login.cgi?useajax=true
”接收的未定数据(在 HTTP 状态行之前)。数据稍后将忽略或作为正文进行处理,并在必要时打印 [MsgId: MMSG-26568]
Action.c(33): 警告 -26567: 未检测到任何 HTTP 状态行。以上的未定数据和目前接收的其他数据将作为“
http://192.168.8.223/login.cgi?useajax=true
”的不带标头的正文进行处理 [MsgId: MWAR-26567]
Action.c(33): “
http://192.168.8.223/login.cgi?useajax=true
”(RelFrameId=1)的 t=45872ms: 12 个字节响应正文
Action.c(33):
result=error
Action.c(33): web_custom_request("login.cgi") 最高严重级别为“warning”,12 个正文字节,0 个标头字节 [MsgId: MMSG-26388]
本来我需要黑体部分应该是result=ok,authStr=h79huKF6yu65YGQWuwjAqrHHkU2j1orqMz0vn0SLHhiIdg1x83oLHttZShSurUP,但是现在日志中返回了result=error,我想是不是因为这个原因,所以一直提示找不到请求的边界存在于响应数据中。不知道这个错误原因是什么?
作者:
xueying1123
时间:
2010-8-3 13:01
推荐用Httpwatch查看一下你要关联的字符串出现在哪个页面的响应里面
作者:
msnshow
时间:
2010-8-3 13:41
如果左右边界正确,那就是放的位置不对
你可以通过查看服务器返回的信息来确认,是哪个URL返回的,再把web_reg_save_param放在请求前面就OK了
作者:
jj_ljw
时间:
2010-8-3 13:45
你的返回值在header里,不在body里面吧。关联到header里试试
作者:
aliceella
时间:
2010-8-3 15:19
好像=号需要转义吧
作者:
very_seven
时间:
2010-8-4 11:16
唉,郁闷啊,试过上述各位的方法了,还是没有找到,因为急着要测性能,所以让开发将这个验证字符串的函数注掉了,不过还是在此感谢各位的支招,后续我会继续尝试解决这个问题的。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2