• Loadrunner手动关联详解


    Loadrunner手动关联详解

    一、关联的含义:

             关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。

    二、关联的过程:

             以登陆场景为例,客户端发出获得登录页面的请求,服务器端得到该请求后,返回登录页面,同时动态生成一个Session Id,当用户输入用户名密码,请求登录时,该Session Id同时被发送到服务器端,如果该Session Id在当前会话中有效,那么返回登录成功的页面,如果不正确则登录失败;在loadrunner第一次录制过程中会把这个值记录了下来,但回放时,客户端发出同样的请求,而服务器端再一次动态的生成了新的Session Id,与Loadrunner中录制的Session Id不匹配,此时客户端发出的请求就会失败,为了获得这个动态的Session Id就用到了关联。

    三、关联的使用:

             LR中对参数关联分两种:

             1、自动关联,比如在录制好后的脚本中,按CTRL+F8,扫描关联,将扫描出来的内容关联即可;如果LR找不到关联时,就需要手动进行关联。

             2、手工关联函数web_reg_save_param,运行脚本时,web_reg_save_param 函数将扫描所访问的后续 HTML 页。如果指定左边界和右边界,将搜索这些边界之间的文本。将匹配的内容保存在web_reg_save_param中定义的参数中。

    实现过程如下:

    web_reg_save_param("outFlightVal",

    "LB=outboundFlight value=", "RB= checked >", LAST );

    web_submit_form("reservations.pl",

    "Snapshot=t4.inf",

    ITEMDATA,

    "Name=depart", "Value=London", ENDITEM,

    "Name=departDate", "Value=11/20/2003", ENDITEM,

    "Name=arrive", "Value=New York", ENDITEM,

    "Name=returnDate", "Value=11/21/2003", ENDITEM,

    "Name=numPassengers", "Value=1", ENDITEM,

    "Name=roundtrip", "Value=<OFF>", ENDITEM,

    "Name=seatPref", "Value=None", ENDITEM,

    "Name=seatType", "Value=Coach", ENDITEM,

    "Name=findFlights.x", "Value=83", ENDITEM,

    "Name=findFlights.y", "Value=16", ENDITEM,

    LAST );

    web_submit_form("reservations.pl_2",

    "Snapshot=t5.inf",

    ITEMDATA,

    "Name=outboundFlight", "Value={outFlightVal}", ENDITEM,

    "Name=reserveFlights.x", "Value=92", ENDITEM,

    "Name=reserveFlights.y", "Value=10", ENDITEM,

    LAST );

    定义了搜索范围LB左边界值和RB右边界值,将匹配的内容存放在outFlightVal中,在web_submit_form表单中进行引用。

    实例说明:

    以下为服务响应表单,对返回的动态值orderId进行关联:

    <input type="hidden" id="orderId" name="orderId"

    value="f28958249e141e62312d855ce73252d3"/>

    实现如下:

    web_reg_save_param("orderId",

       "LB=name="orderId" value="",

       "RB="",

       LAST);

    在服务响应表单中找左边界是:name="orderId" value="

    右边界是:"

    将匹配到的结果赋给orderId。

    之后就可以在后续流程中尽情的调用关联值了。

    另外:web_reg_save_param要放在web_submit_form等提交表单函数之前。

    web_reg_save_param必须在获取返回值的操作前面注册,在获取返回值的操作后面使用。

    保存参数最大不能超过256字节,如果超过256字节请使用int web_set_max_html_param_len(const char *length )函数扩大参数保存范围。

    例如:web_set_max_html_param_len ("1024"); //扩大参数最大保存范围为1024字节。

  • 相关阅读:
    LeetCode 1109 航班预定统计
    leetcode 138 复制带随机指针的链表
    maven导入org.apache.pdfbox
    Intellij Idea 通过svn或者git提交代码时速度慢的解决办法
    java LocalDateTime 加减当前时间
    git命令--拉取代码和切换分支
    Intellij IDEA插件Free Mybatis plugin
    MySQL 生成随机字符串 uuid
    最新版Navicat Premium v15.0.26 中文破解
    算法——二分法查找
  • 原文地址:https://www.cnblogs.com/TestWorld/p/5379147.html
Copyright © 2020-2023  润新知