51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2252|回复: 6
打印 上一主题 下一主题

一段脚本的关联,请围观指导

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2014-10-28 11:15:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面一段代码中URL=http://package.test.wingontravel.com/Booking/99A1897ED2D9D572/Reserve为上一部返回的数值,怎么关联比较好?

脚本如下:
web_submit_data("RouteConf",
  "Action=http://package.test.wingontravel.com/Product/RouteConf",
  "Method=POST",
  "RecContentType=application/json",
  "Referer=http://package.test.wingontravel.com/Detail/500",
  "Snapshot=t36.inf",
  "Mode=HTTP",
  ITEMDATA,
  "Name=goRoute.[0].BeginDate", "Value={CHeckIn}", ENDITEM,
  "Name=goRoute.[0].DDLHotelCity", "Value=617-_-0-_-0-_-0-_-0-_-0-_-0-_-1-_-", ENDITEM,
  "Name=goRoute.[0].HotelCityID", "Value=617", ENDITEM,
  "Name=goRoute.[0].SeqNo", "Value=1", ENDITEM,
  "Name=goRoute.[0].CheckInDate", "Value={CHeckIn}", ENDITEM,
  "Name=goRoute.[0].CheckOutDate", "Value={CheckOut}", ENDITEM,
  "Name=backRoute.BeginDate", "Value=12/11/2014", ENDITEM,
  "Name=AdultCount", "Value=2", ENDITEM,
  "Name=ChildCount", "Value=0", ENDITEM,
  "Name=RoomCount", "Value=1", ENDITEM,
  "Name=ProductID", "Value=500", ENDITEM,
  "Name=MinHead", "Value=2", ENDITEM,
  "Name=IsTest", "Value=0", ENDITEM,
  "Name=X-Requested-With", "Value=XMLHtt"
         "pRequest", ENDITEM,
  LAST);
web_url("Reserve",
  "URL=http://package.test.wingontravel.com/Booking/99A1897ED2D9D572/Reserve",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=http://package.test.wingontravel.com/Detail/500",
  "Snapshot=t37.inf",
  "Mode=HTTP",
  LAST);
web_url("v14_footer.css_3",
  "URL=http://www.wingontravel.com/Content/css/v14_1/v14_footer.css",
  "Resource=1",
  "RecContentType=text/css",
  "Referer=http://package.test.wingontravel.com/Booking/99A1897ED2D9D572/Reserve",
  "Snapshot=t38.inf",
  LAST);


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

使用道具 举报

该用户从未签到

2#
发表于 2014-11-14 12:39:10 | 只看该作者
将上一部分返回的数值保存到一个参数中,然后下一部分是引用这个参数。

用这个函数web_reg_save_param()去获取返回的值。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2014-11-14 12:44:47 | 只看该作者
取个例子:我要获取sessionkey的值,返回的信息是sessionKey:123456789,beginDateReg
这里sessionKey的值是123456789,这个值的左边界是sessionKey: ,右边界是,beginDateReg
//将获取到的sessionKey的值保存到参数session_Key中
web_reg_save_param("session_Key",
                "LB=\"sessionKey\":\"",  //设置左边界
                "RB=\",\"beginDateReg\"",  //设置右边界
                "Search=Body",
                LAST);
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2014-11-17 11:24:07 | 只看该作者
LS已经概述了基本方法

具体怎么捕获,重点在于根据response中含有”99A1897ED2D9D572“的部分,来构造合适的web_reg_save_param的左右边界。
函数的具体使用细节可按F1查看。
根据特征串的上下文 有时还可能用到正则表达式,此时可以web_reg_save_param_ex函数 ,
对于特别复杂的情况,也可以先获取到包含目标的部分,然后通过字符串处理得到其中需要的内容。

楼主没有列出可供参考的response内容,无法帮你直接构造
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2015-8-21 11:21
  • 签到天数: 35 天

    连续签到: 1 天

    [LV.5]测试团长

    5#
    发表于 2014-11-17 18:46:52 | 只看该作者
    楼主告诉你具体方法:
    1.在脚本编辑界面窗口的下部,点击“Generation Log”,这里是你录制脚本时产生的日志信息,这些信息是做关联时所必须参考的;这个日志里的内容都是一个Request对应一个Response,一般要关联的内容都在Response里面;
    2.在“Generation Log”里面搜索要关联的字段,例如你的“99A1897ED2D9D572”这个串,定位到该串首次出现的位置及左右边界,也就是它首次出现的Response的位置;
    3.确定该Response对应的Request,查看该Request对应的脚本中的具体的方法,那么关联方法web_reg_save_param的位置就确定了,就是这个方法前面(不是后面,更不是其他位置);
    4.手工完成web_reg_save_param的方法设置就OK了!

    不知道我说的够不够明白!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2014-12-22 16:40:22 | 只看该作者
    在tree模式下的request和response里面也可以查找服务器的响应内容
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2014-12-25 17:12
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2015-1-5 16:47:51 | 只看该作者
    不错,说得都有理,顶一下
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-8 13:55 , Processed in 0.066581 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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