51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 12806|回复: 25
打印 上一主题 下一主题

[原创] 【!已解决】【关联问题】如何获得此处的jsessionid?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-3-13 11:13:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
介绍系统:
基于.net framework 2.0的胖客户端,中间层部署在 websphere上。登录时,服务器会返回一个 jsessionid。
问题:
如何获取此处的jessionid
录制的脚本:
参见附件 脚本.rar
服务器的response保存在了xml文件中,信息如下:

<table id="result">
<head>
  <cols name="result" type="string" defaultvalue="" selectvalue="" cn_name="执行结果" length="" />
  <cols name="sessionid" type="string" defaultvalue="" selectvalue="" cn_name="session编码" length="" />
  </head>
<body>
  <rows result="true" sessionid="F0BC29CC29F753EFC840327E41162681" />
</body>
</table>


请问在这种情况下,可不可以直接使用web_reg_save_param,
1.如果不可以的话,那该采取什么方法呢?
2.如果可以的话,
web_reg_save_param("jsessionid",
                "LB=result=\"true\" sessionid=\"",
                "RB=\" /",
                "Ord=1",
                "Search=body",
                "RelFrameId=1",
                LAST);

如何处理其中的左右边界呢?因为LB与RB中都存在 " ,运行时报错如下:
Error -26377: No match found for the requested parameter "jsessionid".


谢谢!!!急。

[ 本帖最后由 dawee 于 2008-3-18 17:32 编辑 ]

本帖子中包含更多资源

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

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

使用道具 举报

  • TA的每日心情
    郁闷
    2015-6-16 14:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2008-3-13 11:27:44 | 只看该作者
    引号用转义字符转换
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2008-3-13 11:57:37 | 只看该作者
    原帖由 森林一木 于 2008-3-13 11:27 发表
    引号用转义字符转换


    多谢!
    web_reg_save_param("jsessionid",
                    "LB=result=\"true\" sessionid=\"",
                    "RB=\" /",
                    "Ord=1",
                    "Search=body",
                    "RelFrameId=1",
                    LAST);

    我这个已经做过转义,但是运行后会提示
    Error -26377: No match found for the requested parameter "jsessionid".
    说明使用web_reg_save_param函数是有问题的,或者此函数的使用方法不对
    那么该使用什么函数来处理呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2008-3-13 13:19:22 | 只看该作者
    web_reg_save_param("jsessionid",
                    "LB=result=\"true\" sessionid=\"",
                    "RB=\" /",
                    "Ord=1",
                    "Search=body",
                    "RelFrameId=1",
                    LAST);


    改为:
    web_reg_save_param("jsessionid",
                    "LB=result=\"true\" sessionid=\"",
                    "RB=\"",
                    "Ord=all",
                    "Search=body",
                    "RelFrameId=1",
                    LAST);

    然后打印出所有值看看是不是取到了sessionid.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2008-3-13 14:06:56 | 只看该作者
    原帖由 Zee 于 2008-3-13 13:19 发表


    改为:
    web_reg_save_param("jsessionid",
                    "LB=result=\"true\" sessionid=\"",
                    "RB=\"",
                    "Ord=all",
                    "Search=body",
                ...



      web_reg_save_param("jsessionid",
                    "LB=result=\"true\" sessionid=\"",
                    "RB=\" /",
                   "NotFound=ERROR",
                    "Ord=all",
                    "Search=body",
                    "RelFrameId=1",
                    LAST);

        //lr_message(lr_eval_string({jsessionid}));
        j=atoi(lr_eval_string("{jsessionid_count}"));

        lr_output_message("the j is %d",j);

    有一句输出结果为:  vuser_init.c(102): the j is 0,说明没有符合条件的 jsessionid??
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2008-3-13 14:40:34 | 只看该作者
    关注中
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2008-3-13 15:26:50 | 只看该作者
    将这两行代码注释掉
        j=atoi(lr_eval_string("{jsessionid_count}"));

        lr_output_message("the j is %d",j);

    改为:
    lr_output_message("the jsessionid is: %s", lr_eval_string("{jsessionid}"));

    试试看

    [ 本帖最后由 justsoo 于 2008-3-13 15:29 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2008-3-13 15:30:20 | 只看该作者
    报‘No match found for the requested parameter "jsessionid’这个错的话,应该是关联函数放的位置不对吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2008-3-13 15:44:54 | 只看该作者
    原帖由 justsoo 于 2008-3-13 15:26 发表
    将这两行代码注释掉
        j=atoi(lr_eval_string("{jsessionid_count}"));

        lr_output_message("the j is %d",j);

    改为:
    lr_output_message("the jsessionid is: %s", lr_eval_string("{jsessionid}")); ...


    试了你的方法,输出内容为:
    vuser_init.c(104): the jsessionid is: {jsessionid}

    那应该是 jsessionid 没取到值吧?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-3-13 15:51:34 | 只看该作者
    呵呵,你位置放错了。格式应该是这样的:
    web_reg_save_param("jsessionid",
                    "LB=result=\"true\" sessionid=\"",
                    "RB=\" /",
                   "NotFound=ERROR",
                    "Ord=all",
                    "Search=body",
                    "RelFrameId=1",
                    LAST);

    //这里是获取jsessionid录制的脚本函数。估计可能是web_custom_request函数吧。之后再加入打印信息函数

    lr_output_message("the jsessionid is: %s", lr_eval_string("{jsessionid}"));

    C是面向过程的。还没为jsessionid赋值呢,当然不能正确打印出来。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2008-3-13 16:11:12 | 只看该作者
    原帖由 justsoo 于 2008-3-13 15:51 发表
    呵呵,你位置放错了。格式应该是这样的:
    web_reg_save_param("jsessionid",
                    "LB=result=\"true\" sessionid=\"",
                    "RB=\" /",
                   "NotFound=ERROR",
               ...


    web_reg_save_param("jsessionid",
                    "LB=result=\"true\" sessionid=\"",
                    "RB=\" /",
                                "NotFound=ERROR",
                    "Ord=all",
                    "Search=body",
                    "RelFrameId=1",
                    LAST);

        // j=atoi(lr_eval_string("{jsessionid_count}"));

        //lr_output_message("the j is %d",j);

        lr_output_message("the jsessionid is: %s", lr_eval_string("{jsessionid}"));


    顺序没错。

    输出信息为:
    vuser_init.c(90): Registering web_reg_save_param was successful          [MsgId: MMSG-26390]
    vuser_init.c(104): the jsessionid is: {jsessionid}
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2008-3-13 16:23:10 | 只看该作者
    web_reg_save_param( );

    lr_output_message( );
    这两个函数中间有web_custom_request( )请求函数吗?

    类似于这样的格式:
    web_reg_save_param( );
    web_custom_request( )
    lr_output_message( );
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2008-3-13 16:30:21 | 只看该作者
    原帖由 justsoo 于 2008-3-13 16:23 发表
    web_reg_save_param( );

    lr_output_message( );
    这两个函数中间有web_custom_request( )请求函数吗?

    类似于这样的格式:
    web_reg_save_param( );
    web_custom_request( )
    lr_output_message( );



    这两个中间没有 web_custom_request,我把
    web_reg_save_param( );

    lr_output_message( );
    都放在了 web_custom_request( )  前面。

    我qq:46674478
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2008-3-13 16:37:05 | 只看该作者
    那你就把lr_output_message( );
    调到 web_custom_request( )  的后面。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2008-3-13 16:44:26 | 只看该作者
    看看结果
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
     楼主| 发表于 2008-3-14 11:18:29 | 只看该作者
    仍然没有解决。期盼大家帮忙解决。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2008-3-14 17:12:13 | 只看该作者

    最新进展

    经过与 Dennis.Duan的讨论以及其点拨,采用以下方法(左右边界为空)可以获取xml的完整内容,但是给定左右边界之后仍然是报 no match的错误。
            //关联从XML文件中获取 jsessionid


            web_reg_save_param("jsessionid",
                            "LB=",
                            "RB=",
                            "NotFound=ERROR",
                            "Ord=1",
                            "Search=body",
                            //"RelFrameId=1",
                            LAST);

            web_custom_request("servlet",
                    "URL=http://172.16.37.11/scmserver/servlet?userid=dawee&password=F578EA9AC07F28AD77BD195780B92DF2",
                    "Method=POST",
                    "Resource=0",
                    "RecContentType=text/xml",
                    "Referer=",
                    "Snapshot=t4.inf",
                    "Mode=HTTP",
                    "EncType=application/xml",
                    LAST);

            //输出获取的jsessionid

            lr_output_message("the jsessionid is: %s", lr_eval_string("{jsessionid}"));
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2008-3-15 21:00:14 | 只看该作者
    两个问题,仔细验证一下:

    1. 代码的位置,应该放在submit代码之前,然后再submit之后进行输出验证
    2. 输出验证代码,lr_output_message的写法,仔细检查

    我曾经也遇到过这个问题,这个问题比较常见。相信很多人都遇到过的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2008-3-16 17:45:55 | 只看该作者
    rickyzhu所言有理

    甚至你extend log 打开,检查页面返回是否有jsessionid
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2008-3-17 15:33:24 | 只看该作者
    高手如云。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-10 14:51 , Processed in 0.081243 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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