51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6391|回复: 13
打印 上一主题 下一主题

[原创] 在生成日志中取关联值,为何总是提示找不到边界值之间的参数呢?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-8-2 17:03:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我录制了一段脚本,需要做手动关联,要关联的数据在生成日志中,如下:
****** 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 = ”

请教各位是我关联边界值写错了吗?我觉得好像不是这个原因,因为我换了个比较好认的边界取值,还是得不到参数值,是不是不能在生成日志中做关联呢,论坛很多关联方法中都是说在回放日志中取关联值的。
可能描述得不是很清楚,附上图片,麻烦各位了,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-8-2 17:16:25 | 只看该作者
你要匹配的关联值是在http://192.168.8.223/login.cgi?useajax=true页面中吗?

那web_reg_save_param应该放在页面请求“web_custom_request("login.cgi",……”之前 
 
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-8-2 17:37:24 | 只看该作者

回复 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);
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-8-2 17:56:19 | 只看该作者
有点乱……

authStr是通过请求下面的页面得到的参数
而下面的页面(http://192.168.8.223/index.htm?authStr={authStr})中需要调用还没有赋值的参数
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-8-2 18:01:07 | 只看该作者

回复 3# 的帖子

web_url("index.htm",  只是你要使用的地方吧,一个静态页面能有什么关联的。。。
就像2#说的,web_custom_request("login.cgi",  才是你要得到值的地方

关联参数名叫{authStr} 。。。还没开始找,又给这个请求的链接里拼上{authStr} 。。。能有才出奇了
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    6#
    发表于 2010-8-2 21:44:41 | 只看该作者
    很明显,你的web_reg_save_param 放的地方不对,不可能从你要用到这个参数的页面去取这个参数的值
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2010-8-2 22:22:18 | 只看该作者
    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);
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2010-8-3 10:32:26 | 只看该作者
    我将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]
    唉,问题还是没有解决,不过多谢各位了,我会继续努力学习的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2010-8-3 11:54:00 | 只看该作者
    我在回放日志里找了需要关联的字符串,发现服务器响应的消息里没有我要的信息,回放日志如下:

    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,我想是不是因为这个原因,所以一直提示找不到请求的边界存在于响应数据中。不知道这个错误原因是什么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2010-8-3 13:01:07 | 只看该作者
    推荐用Httpwatch查看一下你要关联的字符串出现在哪个页面的响应里面
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    11#
    发表于 2010-8-3 13:41:42 | 只看该作者
    如果左右边界正确,那就是放的位置不对

    你可以通过查看服务器返回的信息来确认,是哪个URL返回的,再把web_reg_save_param放在请求前面就OK了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2010-8-3 13:45:19 | 只看该作者
    你的返回值在header里,不在body里面吧。关联到header里试试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2010-8-3 15:19:02 | 只看该作者
    好像=号需要转义吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2010-8-4 11:16:14 | 只看该作者
    唉,郁闷啊,试过上述各位的方法了,还是没有找到,因为急着要测性能,所以让开发将这个验证字符串的函数注掉了,不过还是在此感谢各位的支招,后续我会继续尝试解决这个问题的。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-17 22:18 , Processed in 0.079982 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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