51Testing软件测试论坛

标题: 一段脚本的关联,请围观指导 [打印本页]

作者: 凤凰在涅磐    时间: 2014-10-28 11:15
标题: 一段脚本的关联,请围观指导
下面一段代码中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);



作者: robbie821    时间: 2014-11-14 12:39
将上一部分返回的数值保存到一个参数中,然后下一部分是引用这个参数。

用这个函数web_reg_save_param()去获取返回的值。
作者: robbie821    时间: 2014-11-14 12:44
取个例子:我要获取sessionkey的值,返回的信息是sessionKey:123456789,beginDateReg
这里sessionKey的值是123456789,这个值的左边界是sessionKey: ,右边界是,beginDateReg
//将获取到的sessionKey的值保存到参数session_Key中
web_reg_save_param("session_Key",
                "LB=\"sessionKey\":\"",  //设置左边界
                "RB=\",\"beginDateReg\"",  //设置右边界
                "Search=Body",
                LAST);

作者: greedygod    时间: 2014-11-17 11:24
LS已经概述了基本方法

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

楼主没有列出可供参考的response内容,无法帮你直接构造

作者: zhysync    时间: 2014-11-17 18:46
楼主告诉你具体方法:
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了!

不知道我说的够不够明白!
作者: zgiori    时间: 2014-12-22 16:40
在tree模式下的request和response里面也可以查找服务器的响应内容
作者: hujing1229    时间: 2015-1-5 16:47
不错,说得都有理,顶一下




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