zoukankan      html  css  js  c++  java
  • 关联函数:web_reg_save_param

    一、什么是关联

    关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。也是把脚本中某些写死的数据,转变成动态的数据。
    什么内容需要关联:当脚本中的数据每次回放都发生变化时,并且这个动态数据在后面的请求中需要发送给服务器,那么这个内容需要通过关联来询问服务器,获得该数据的变化结果。例如:
    1.登录字符串。带有会话 ID 或时间戳等动态数据的登录字符串。
    2.日期/时间戳。使用日期或时间戳或者其他用户凭据的任意字符串。
    3.常见前缀。后跟字符串的常见前缀,如 SessionID 或 CustomerID

    二、web_reg_save_param函数说明

    语法:

    int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST);

    参数说明:

    · ParamName: 存放得到的动态内容的参数名称

    · list of Attributes: 其它属性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。属性值不分大小写

    o Notfound: 当在返回信息中找不到要找的内容时应该怎么处理

    o Notfound=error: 当在返回信息中找不到要找的内容时,发出一个错误讯息。这是缺省值。

    o Notfound=warning: 当在返回信息中找不到要找的内容时,只发出警告,脚本也会继续执行下去不会中断。

    o LB( Left Boundary ) : 返回信息的左边界字串。该属性必须有,并且区分大小写。

    o RB( Right Boundary ): 返回信息的右边界字串。该属性必须有,并且区分大小写。

    o RelFrameID: 相对于URL而言,欲查找的网页的Frame。此属性质可以是All或是数字,该属性可有可无。

    o Search : 返回信息的查找范围。可以是Headers,Body,Noresource,All(缺省)。该属性质可有可无。

    o ORD : 说明第几次出现的左边界子串的匹配项才是需要的内容。该属性可有可无,缺省值是1。如为All,则将所有找到的内容储存起来。

    o SaveOffset : 当找到匹配项后,从第几个字元开始存储到参数中。该属性不能为负数,缺省值为0。

    o SaveLen :当找到匹配项后,偏移量之后的几个字元存储到参数中。缺省值是-1,表示一直到结尾的整个字串都存入参数

    三、实例说明

      下面例子实现了登录时获取动态token

    vuser_init()
    {

        web_reg_find("Search=Body",
             "Text="error_no":"0"",
              "SaveCount=Count",
              LAST);

    //  token返回值:{"token":"NjYwMDAxMjFfR0NT.198200f1dd43dc90b379dc861b6c642cb0aa7730e063db124dbf3"}}

    //      新版关联函数:web_reg_save_param_regexp();


         web_reg_save_param("token1",
                            "LB="token":"",
                            "RB="",
                            "SEARCH=BODY",
                             LAST);

        web_custom_request("login",    
                           "URL=http://101.101.100.11:8080/TQLEX?Entry=TPServer:action",  // 加载的URL
                           "Method=POST", // 使用HTTP POST 方式提交
                           "Resource=1",  
                           "RecContentType=text/xml",
                           "Referer=",
                           "Mode=HTTP",
                           "EncType=text/xml;charset=utf-8", //编码类型
                           "Body={method:'POST',serverName:'gcs',requestPath:'/trade/user/login',params:{account_content:'{client_id}',password:'123456',input_content:'1'},headers:{User-Agent:'Mozilla/5.0 (Windows NT 6.1; WOW64)',x-forwarded-for:'10.110.7.211'}}",
                           LAST);// 请求体(轨迹信息)

        lr_output_message("token is:%s",lr_eval_string("{token1}"));

        return 0;
    }

    其他实例参考:http://www.cnblogs.com/Automation_software/p/3482094.html

  • 相关阅读:
    table固定头部,tbody内容滚动
    js 中json遍历 添加 修改 类型转换
    SEO优化
    JS对字符串的操作,截取
    移动端 去掉滚动栏
    JS 引擎的执行机制
    Uncaught SyntaxError: Unexpected token ILLEGAL
    利用css 画各种三角形
    js文本公告滚动展示,图片轮播....
    js判断手指的上滑,下滑,左滑,右滑,事件监听
  • 原文地址:https://www.cnblogs.com/workmore/p/6109888.html
Copyright © 2011-2022 走看看