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字节。

Loadrunner手动关联详解的更多相关文章

  1. 【Loadrunner】Loadrunner 手动关联技术

    Loadrunner 手动关联技术 录制成功,回放失败,怀疑和动态数据有关: 1 重新录制一份脚本,两次录制的脚本进行比对,确定动态数据,复制动态数据: 2  找到第一次产生该动态数据的响应对应的相应 ...

  2. LoadRunner ---手动关联与预关联

    手动关联                                       如果脚本很长,那么我们想找到一个脚本中哪些地方是需要关联的并不是一件容易的事情.这时,我们可以通过脚本对比的方法找 ...

  3. loadRunner手动关联, web_reg_save_param_regexp()函数正则匹配字符,赋值给变量

    loadRunner写脚本实现登录机票网站,手动关联,获取页面源码中特定字符 手动关联,就是通过函数获取某个步骤生成的字符,赋值给一个变量,这个变量可以作为接下来某个步骤的输入, 以便这个脚本能够在存 ...

  4. loadrunner之analysis详解

    本文原出处:http://blog.csdn.net/lykangjia/article/details/56009750 一.常用到的性能测试术语 1.事务(Transaction) 在web性能测 ...

  5. Jmeter关联详解

    关联的概念 从上一步操作中获取需要的值,传递给下一步操作中进行引用,形成自动关联,而不是 每次操作都去手动修改关联的值.常见的场景有SessionID.Session Token值的获取. 正则表达式 ...

  6. hibernate 一对多双向关联 详解

    一.解析: 1.  一对多双向关联也就是说,在加载班级时,能够知道这个班级所有的学生. 同时,在加载学生时,也能够知道这个学生所在的班级. 2.我们知道,一对多关联映射和多对一关联映射是一样的,都是在 ...

  7. LoadRunner参数化功能详解

    更新方式: .      Each Occurrence 每次遇到参数就进行更新. 多次使用同一参数,而且没有什么关联,例如随机数. Each Iteration 每次迭代时发生更新. 如果参数出现几 ...

  8. django--orm表自关联详解

    什么是表内自关联 表内自关联是指表内数据相关联的对象和表是相同字段,这样我们就直接用表内关联将外键关联设置成自身表的字段.同样表内关联也分一对多字段和多对多字段 例如:对于微博评论,每条评论都可能有子 ...

  9. json手动解析详解

    项目中有时候仅仅需要一个或者多个字段时可以使用这种解析方式,省去创建实体类. 1.首先讲解下最基本的数据格式. 例如: String json="{'name':'小明','action': ...

随机推荐

  1. 中南月赛F ZZY and his little friends

    Problem F: ZZY and his little friends Time Limit: 5 Sec  Memory Limit: 256 MBSubmit: 137  Solved: 70 ...

  2. 最小生成树(prim)

    里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且 ...

  3. 分ip统计网站访问次数

    package web.listener; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; ...

  4. Raspberry Pi - Huawei HiLink E3256 3G modem to ethernet adapter

    Raspberry Pi - Huawei HiLink E3256 3G modem to ethernet adapter This page documents how to configure ...

  5. Ubuntu 安装 PhpMyAdmin 图文教程

    Ubuntu 安装 PhpMyAdmin 管理 MySQL 数据库 PhpMyAdmin 是一个用 PHP 编写的软件工具,可以通过 web方式控制和操作 MySQL 数据库.通过 phpMyAdmi ...

  6. appium定位安装包启动类名称

    cmd输入:adb logcat > d:/1.txt  然后运行APP,关闭APP,到D盘查找文件1,Ctrl+F,输入LAUNCHER,定位启动类,如下图所示位置 即为,eclipse调用A ...

  7. what's up ? docker, all right.

    Docker install 下载对应安装包,离线安装 Docker 需要 docker-engine.docker-engine-selinux.libtool-ltdl这三个软件包. 下面以安装 ...

  8. 使用mathjax在博客中完美显示数学公式,支持PC,手机浏览器

    在博客园的设置选项里 有页头HTML的框内输入: <script type="text/javascript" src="http://cdn.mathjax.or ...

  9. SQL Server ->> 获取服务器名字和SQL SERVER实例名的几种函数

    SELECT @@SERVERNAME as [@@SERVERNAME], SERVERPROPERTY('MachineName') MachineName, SERVERPROPERTY('In ...

  10. 秒杀多线程第一篇 多线程笔试面试题汇总 ZZ 【多线程】

    http://blog.csdn.net/morewindows/article/details/7392749 系列前言 本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些 ...