一、关联定义

把脚本中某些写死的数据,转变成是撷取自服务器所发送的、动态的、每次都不一样的数据

二、什么时候需要做关联

要想弄清这个问题,我们首先要知道客户端与服务器端的请求与响应的过程

过程说明:

客户端发出获得登录页面的请求,服务器端得到该请求后,返回登录页面,同时动态生成一个Session Id;

当用户输入用户名密码,请求登录时,该Session Id同时被发送到服务器端;如果该Session Id在当前会话中有效,那么返回登录成功的页面,如果不正确则登录失败。

应用场景:

在第一次录制过程中LR把这个值记录了下来,写到了脚本中,但再次回放时,客户端发出同样的请求,而服务器端再一次动态的生成了Session Id,此时客户端浏览器再次输入用户名和密码时,请求登录,还是用旧的Session Id,发出的请求就是错误的,为了获得这个动态的session Id我们这里用到了关联。

所以我们得出结论:

当客户端的某个请求是随着服务器端的相应而动态变化的时候,我们就需要用到关联。(凡是脚本每次执行时都必须获得唯一标识的地方都需要关联。)

当然我们在录制脚本时应该对测试的项目进行适当的了解,知道哪些请求需要用到服务器响应的动态值,如果我们不明确那些值需要做关联的话,我们也可以将脚本录制两遍,通过对比脚本的方法来查找需要关联的部分,但并不是说两次录制的所有不同点都需要关联,这个要具体情况具体分析

三、关联有两种机制,自动关联和手动关联:
        首先谈谈自动关联

VuGen内建自动关联引擎(Auto-correlation
Eengine),提供Rules Correlation 和Correlation Studio 两种机制,可以自动找出需要关联的值,并且自动使用关联函数建立关联。

1、“Rules Correlation”:在录制过程中VuGen 会根据使用者事先制订的规则,实时自动找出要关联的值。规则的来源有内建(Built-in Correlation)和使用者自定义(User-defined  Rules Correlation)关联规则两种。

内建(Built-in
Correlation):VuGen已经针对常用的一些应用系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeropleSoft、Siebel、SilverJRunner等,内建了一些关联规则。这些应用系统可能会有一种以上的关联规则。

可以在单击“VuGen”启动>在菜单【Tool】>【Recording
Options】>【HTTP Properties】>【Correlation】中启用关联规则,启动关联后,当录制这些应用系统脚本时,VuGen会在脚本中自动建立关联。也可以在【Recording Options】>【HTTP Properties】>【Correlation】检视每个关联规则的定义。

除了内建的关联则之外,使用者也可以自定关联规则。可以在【Recording Options】>【HTTP Properties】>【Correlation】建立新的关联规则。

在说说手动关联:

捕获关联->将函数web_reg_save_param()加在产生动态值页面的步骤前->参数化变动的值->确定执行是否正确(Extended log勾选parameter substitution)

详细具体的关联步骤可以,参考下面的链接

http://blog.163.com/pengjintaogz@126/blog/static/1622990682014630105026532/

操作步骤:

1、捕获关联

a、用windiff对比两个录制同样操作脚本(Tools->compare with Vuser),其中不同的地方可能就是需要关联的

b、录制脚本后进行回放,在Tree View下对比录制和回放的信息,根据回放的错误提示信息进行判断需要关联的数据。

2、确定动态数据的左右边界

将Extended log中的Data returned by server选项勾上,之后回放脚本。根据变量名,在Replay log中找到关联的数据,进而确定左右边界。

3、将关联函数添加到正确的位置

在Replay log中找到关联的数据后,双击该数据,loadrunner会自动定位发送该数据的函数,将关联函数添加在该函数的上面

4、把脚本中的动态数据用变量进行替代

关联函数web_reg_save_param()的几个重要的参数

LB:动态数据的左边界字符串,区分大小写

RB:动态数据的右边界字符串,区分大小写

ORD:表示提取第几次出现的左边界的数据,可选参数,默认为1

SaveOffset:当找到符合的动态数据时,从第几个字符开始储存到参数中,可选参数,默认为0

SaveLen:从Offset开始算起,到指定长度内的字符串,才储存到参数中,默认值是-1,表示储存到结尾的整个字符串

左右边界设定时注意双引号等特殊字符需要使用反义字符\,如“LB=DANGAN_ID\”:\””,匹配DANGAN_ID”:”

Loadrunner—关联知识点的更多相关文章

  1. Loadrunner关联取参及设置检查点

    Loadrunner关联取参及设置检查点: 获取post的响应值当作参数存储,要在此post请求之上添加 web_reg_save_param("sign", "LB=m ...

  2. Loadrunner 关联 web_custom_request综合实例

    Loadrunner 关联 web_custom_request综合实例 Loadrunner 关联web_custom_request,针对自带的订票系统的一个综合实例,相信看了本文大家对学习loa ...

  3. loadrunner 关联匹配多个值

    loadrunner 关联获取从服务器返回相关值,如果需要把所有匹配的值都获取并且把这些值打印出来,怎么做呢? 1.首先要把把所有的匹配值都保存起来,需要在关联函数里面多传递一个参数:"Or ...

  4. 品味性能之道<八>:Loadrunner关联技巧与字符处理

    一.概述       Loadrunner作为HP出品的性能测试工具,拥有太多奇妙魔法甜点供予性能测试人员享用,其中吃起来比较有嚼劲的那就是关联了.当然在关联之后我们还需要一些简单的字符处理,用以生成 ...

  5. LoadRunner关联通用函数的学习

    LoadRunner关联通用函数的学习 写这篇文章的时候,我先声明一下,本BLOG中的文章如果没有写出是转贴的一般就是本人原创. Loadrunner脚本中进行关联的时候,用到了一些函数,作用是把字符 ...

  6. loadrunner关联——对服务器返回的数据选择性提交

    在跟进项目的过程中,才体会到自己之前闷头看书再写小小的测试程序验证的学习方式很没有效率,知道动态关联,却也只是会参数化式的动态关联,这种关联是我们预先知道要提交的数据而进行的关联:更高一级的可能就是使 ...

  7. LoadRunner关联之学习笔记

    去银行办业务,进银行的门,大堂经理给你一张业务号,拿着这张业务号,去柜台办理业务.--录制下来 第二天又去银行,还是拿着这张业务号,去柜台办理业务,柜员就不理你了,因为这张业务号是昨天的.--回放过程 ...

  8. Loadrunner关联

    学习LoadRunner之关联(二) Lr学习之关联-随机删除一行数据和全部删除数据 录制一个系统,我录制的是一个交通方面的系统,登陆到系统里面,查询车牌颜色,将其中一条数据删除. "Nam ...

  9. loadrunner关联数组后拼凑字符串

    loadrunner拼接关联数组的元素 int arrSize=0; int index=1; int len=0; char arryStartString[1024]=""; ...

随机推荐

  1. 关于SoftReference的使用

    SoftReference一般可以用来创建缓存的,缓存我们经常使用,例如:我们在浏览器中浏览了一个网页后,点击跳转到新的网页,我们想回去看之前的网页,一般是点击回退按钮,那么这个时候之前的网页一般就是 ...

  2. java中介者模式

    中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改.如果使用中介者模式,只需关心和Mediator类的关系 ...

  3. You must restart adb and Eclipse.

    打开Eclipse运行android 程序发现虚拟机启动不了提示  You must restart adb and Eclipse. 如下方式适用于端口占用的情况: 1.netstat -ano|f ...

  4. jquery实现简单瀑布流

    瀑布流这个概念一直不是很理解,看到别人可以实现,自己弄了很久还是不能实现就很纠结.瀑布流这根刺就一直扎在我心里,一次偶然的机会看到别人实现了瀑布流,我想我是不是也应该再继续把这个未完成的任务画一个圆满 ...

  5. 解决Win8.1系统Wpprecorder.sys蓝屏故障

    为了跨平台调试,在Mac Air使用Bootscamp安装了Windows 8.1,但是经常出现system_thread_exceptions_not_handled(Wpprecorder.sys ...

  6. Vagrant更改默认的SSH端口

    Vagrant默认转发宿主的2222端口到虚拟机的22端口(默认设置,无须配置).在有多个虚拟机并存的情况下,2222端口将不好使.具体表现在: 启动第二个虚拟机的时候,会报端口占用错误: $ vag ...

  7. Tomcat入门级小白教程

    Tomcat 类似与一个apache的扩展型,属于apache软件基金会的核心项目,属于开源的轻量级Web应用服务器,是开发和调试JSP程序的首选,主要针对Jave语言开发的网页代码进行解析,Tomc ...

  8. Flink学习笔记:Time的故事

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  9. Ubuntu14.04安装libusb

    https://www.cnblogs.com/ettie999/p/8142973.html libuvc是一个跨平台的USB视频设备库,建立在libusb之上. 它能够对导出标准USB视频类(UV ...

  10. Java的定时调度

    一般在web开发中定时调度比较有用,因为要维护一个容器不关闭才可以一直定时操作下去. 定时调度:每当一段时间之后,程序就会自动执行,就称为定时调度.如果要使用定时调动,则必须要保证程序要始终运行着,也 ...