zoukankan      html  css  js  c++  java
  • loadrunner11关联

    实例1:

    web系统在新增模块向数据库提交数据时做自动关联时不成功,由于左右边界值设定不全导致,最终手动设置后关联成功,并成功向数据库添加数据。
    1、新增页面提交数据脚本

    web_submit_data("ctiConsultType_save+.action",
      "Action=http://10.12.1.48:8080/callcenter/cti/ctiConsultType_save+.action",
      "Method=POST",
      "RecContentType=text/html",
      "Referer=http://10.12.1.48:8080/callcenter/cti/ctiConsultType_edit$.action",
      "Snapshot=t128.inf",
      "Mode=HTTP",
      ITEMDATA,
      "Name=struts.token.name", "Value=struts.token", ENDITEM,
      "Name=struts.token", "Value=B4QD3OQYR8347H775PBF4IHZZKH5OZ0V", ENDITEM,
      "Name=criteria.strVal1", "Value=", ENDITEM,
      "Name=currentPage", "Value=1", ENDITEM,
      "Name=editCtiConsultType.zxlxid", "Value=", ENDITEM,
      "Name=xtgnid", "Value=531", ENDITEM,
      "Name=editCtiConsultType.zxlxmc", "Value=xhnf{zxfs}", ENDITEM,
      "Name=editCtiConsultType.beizhu", "Value=12345", ENDITEM,
      LAST);

    2、回放后按Ctrl+F8,找到可关联数据值为:

    B4QD3OQYR8347H775PBF4IHZZKH5OZ0V

    3、在新增页面关联

    web_reg_save_param_ex(
            "ParamName=zpwu",
            "LB=value="",
            "RB=" ",
            SEARCH_FILTERS,
            "Scope=Body",
            "RequestUrl=*/ctiConsultType_edit$.action*",
            LAST);

    4、回放后数据未提交
    5、找到Tree模式下的B4QD3OQYR8347H775PBF4IHZZKH5OZ0V值内容为:
       name="struts.token" value="B4QD3OQYR8347H775PBF4IHZZKH5OZ0V
    " />
    6、重新关联,将左边界值内容范围增加

    web_reg_save_param_ex(
            "ParamName=zpwu",
            "LB="struts.token" value="",
            "RB=" ",
            SEARCH_FILTERS,
            "Scope=Body",
            "RequestUrl=*/ctiConsultType_edit$.action*",
            LAST);

    7、"Name=editCtiConsultType.zxlxmc", "Value=xhnf{zxfs}",为新增页面必选项,做参数化处理。
    8、回放迭代10次,查看系统,成功向数据库添加10条数据。

     

    实例2:

    例1:

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

     

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

     

    该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方法用于取数组指定下标的值。打开扩展日志,运行脚本,可以看到正确的关联出了结果。

     

     

     

     说明:非原创,忘记这篇文章的链接了

     

    move on
  • 相关阅读:
    设计模式——设计原则与思想总结
    SQL——性能优化篇(下)
    计算机组成原理——入门篇
    SQL——性能优化篇(中)
    SQL——性能优化篇(上)
    设计模式——规范与重构(下)
    设计模式——规范与重构(上)
    编译原理——实现一门脚本语言 应用篇
    编译原理——实现一门脚本语言 原理篇(下)
    设计模式——设计原则实战
  • 原文地址:https://www.cnblogs.com/amy720/p/12187000.html
Copyright © 2011-2022 走看看