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,则将所有找到的内容储存起来。如果未ALL,参数会变为*(参数名)_count  取参数时 参数名_1代表这个数组的第一个值  参数名_count代表这个数组内容的个数
    o SaveOffset : 当找到匹配项后,从第几个字元开始存储到参数中。该属性不能为负数,缺省值为0。
    o SaveLen :当找到匹配项后,偏移量之后的几个字元存储到参数中。缺省值是-1,表示一直到结尾的整个字串都存入参数。
    三、实例解析
    例1:

    如图所示,不输入查询条件,直接点击【查询】按钮。生成的数据提交脚本如下:

    该value值为请求的数据总数,该值是动态变化的。为了正确的发送请求并得到正确的结果,需要对该值进行关联。
    在Generation Log中搜索“totalItem”,如图所示,从而可以确定该value值的左右边界。

    在脚本的请求前插入web_reg_save_param方法,并在提交数据请求的时候使用{count}来替代录制时实际的值。如下图:

    打开扩展日志,运行脚本,可以看到正确的关联出了结果。

    例2:
    上面实例是使用web_reg_save_param的ORD=1,只是取第1次出现的左边界子串的匹配项为需要的内容,下面例子使用web_reg_save_param的ORD=ALL,将匹配到的内容保存到数组中。
    根据消息列表中的记录数来进行关联(只是为了演示,分页不考虑),跟踪Generation Log可以看到,一条记录的内容会包含5列内容。如下图:


    从上图中可以确定其左右边界,在脚本的请求前插入web_reg_save_param方法,并在提交数据请求的时候使用arrSize/5来替代录制时实际的值。如下图:

    其中lr_paramarr_len方法用于取出数字长度,lr_paramarr_idx方法用于取数组指定下标的值。打开扩展日志,运行脚本,可以看到正确的关联出了结果。

    专注于自动化、性能研究,博客为原创,转载请注明文章来源于:http://www.cnblogs.com/Automation_software/ 只求在IT界有一个清闲的世界让我静心的去专研,不求功名利禄,只为心中的那份成就感及自我成长、自我实现的快感。
    四、错误解析
    如果在使用 web_reg_save_param过程中,报错if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len.意思是返回的内容超过了长度。使用 int web_set_max_html_param_len (const char *length )函数扩大参数保存范围
            例如: web_set_max_html_param_len ("1024"); // 扩大参数最大保存范围为 1024字节
     
    示例:遥知查询打卡详情
    web_set_max_html_param_len ("1024");
      web_reg_save_param("result",
      "LB=[",
      "RB=]",
      "Search=all", LAST);
     
      web_custom_request("detaileds",
      "URL=http://test.xw.365grid.cn/minierp/hr/cardrecords/detaileds?workDate=2016-06-02",
      "Method=GET",
      "Resource=0",
      "RecContentType=application/json",
      "Referer=http://test.xw.365grid.cn/minierp/",
      "Snapshot=t5.inf",
      "Mode=HTML",
      LAST);
     
    lr_output_message(lr_eval_string("{result}"));// 在回放日志里打印
  • 相关阅读:
    C# Attribute(中)——Attribute本质论
    计算机体系结构-内存调优IPC OOMK
    RHCA-RH442-Linux系统性能调优 (学习)
    Redhat 官方Performance_Tuning_Guide
    linux 内核官方文档
    运维博客---OOM
    lenky的个人站点 ----LINUX 内核进程
    kswapd0、kjournald、pdflush、kblocked、migration进程含义 转
    计算机体系结构 -内存优化vm+oom
    计算机体系结构-CPU
  • 原文地址:https://www.cnblogs.com/scarlett-hy/p/10168473.html
Copyright © 2011-2022 走看看