LoadRunner 技巧之 自动关联

这一节讲loadunner 关联的问题,其实这个东西理解起来简单,但说起来比较麻烦。

关联的原理:                                                                                            

先来模拟一个场景,我去坐火车,坐火车要先检票,检票员核对火车票的时间、班次等信息正确后允许我坐火车。

过了几天,我又拿着一张票去坐火车,检票员再一次核对火车票信息,发现这张票过期了,肯定不让我坐了。那我怎么才能坐火车呢?我先看看旁边那哥们的火车票上的信息,然后把自己的查票涂改成和他一模一样再去坐火车。

在我们录制测试脚本时也经常会遇到这样的情况:录制的时候,服务器会给一个唯一的认证码来进行操作,当再次回放脚本的时候服务器又会给一个全新的认证码,而脚本录制是死的,还是拿老的认证码提交,从而导致脚本执行时失败。

下面详细来分析一下录制与回放的过程

录制过程:

1、输入用户名密码登录

2、服务器端返回一个[email protected]@@12345

3、客户端拿着获得[email protected]@@12345进一步请求服务器信息。

4、服务器返回客户端想要的信息

回放过程:

1、输入用户名密码登录

2、客户端返回新的[email protected]@@23456

3、因为脚本中的[email protected]@@12345 是写死的,所以我们会依然拿着老的[email protected]@@12345去向服务器请求信息

4、服务器你经过验证发现你的[email protected]@@12345 是错误的。

为了确保脚本回放的成功,我们需要获得服务器每次返回的动态的sesiionID,再将这个动态数据发回给服务器。而关联能够帮助我们将服务器返回的数据进行处理并保存为参数。

OK!通过上面的分析,我们大概明白的关联的原理,下面要解决的问题就是如何设置关联。关联的三种方法:

  • 自动关联
  • 手动关联
  • 一边录制一边关联

自动关联                                                                                                    

在录制脚本之后打开recording Options 窗口,点击correlation标签页。确保Enable correlation during recording 选项处于勾选状态。

在LoadRunner 自带WebTours为例设置关联,

访问WebTours首页,点击administration 链接, 设置 Set LOGIN form‘s action tag to an error page. 勾选更新。

录制WebTours登录与退出脚本:

Action()
{

web_url("WebTours",
        "URL=http://127.0.0.1:2080/WebTours/",

"Resource=0",
       
"RecContentType=text/html",
        "Referer=",
        "Snapshot=t1.inf",
        "Mode=HTML",
        LAST);

web_url("favicon.ico",
        "URL=http://127.0.0.1:2080/favicon.ico",

"Resource=1",
        "Referer=",
        LAST);

web_submit_data("login.pl",

"Action=http://127.0.0.1:2080/WebTours/login.pl",

"Method=POST",
        "Referer=http://127.0.0.1:2080/WebTours/nav.pl?in=home",

"Mode=HTML",
        ITEMDATA,
        "Name=userSession",
"Value=110381.833940867fzHHHzfpfiDDDDDDDtAzzpfQDf", ENDITEM,
        "Name=username",
"Value=test", ENDITEM,
        "Name=password",
"Value=123456", ENDITEM,
        "Name=JSFormSubmit",
"Value=on", ENDITEM,
        LAST);

web_submit_data("login.pl_2",
        "Action=http://127.0.0.1:2080/WebTours/login.pl",

"Method=POST",
       
"RecContentType=text/html",
        "Referer=http://127.0.0.1:2080/WebTours/nav.pl?in=home",

"Snapshot=t2.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=userSession",
"Value=110381.833940867fzHHHzfpfiDDDDDDDtAzzpfQDf", ENDITEM,
        "Name=username",
"Value=test", ENDITEM,
        "Name=password",
"Value=123456", ENDITEM,
        "Name=JSFormSubmit",
"Value=on", ENDITEM,
        "Name=login.x",
"Value=52", ENDITEM,
        "Name=login.y",
"Value=1", ENDITEM,
        LAST);

web_image("SignOff Button",

"Alt=SignOff Button",
        "Snapshot=t3.inf",
        LAST);

return 0;
}

回放脚本出错:

Action.c(47): Error -27987: Requested image not found      [MsgId: MERR-27987]
Action.c(47): web_image("SignOff Button") highest severity level was
"ERROR", 0 body bytes, 0 header bytes      [MsgId: MMSG-26388]

选择菜单栏Vuser ---> Scan Script for Correlations (快捷键ctrl + F8 )弹出下面窗口

扫描相关性可能需要几分钟,你想继续么? 当然,点击“YES”

选中需要关联的内容,点击“ remove
Correlation 

时间: 2024-11-09 14:00:30

LoadRunner 技巧之 自动关联的相关文章

LoadRunner脚本增强技巧之自动关联

为什么要做关联,原理很简单,录制脚本的时候,服务器会给用户一个唯一的认证码来进行操作,当再次回放脚本的时候服务器又会给一个全新的认证码,而录制好的脚本是写死的,还是拿老的认证码提交,肯定会导致脚本执行失败. 下面是网上找到的录制和回放过程的示意图 录制过程: 1.输入用户名密码登录 2.服务器端返回一个[email protected]@@12345 3.客户端拿着获得[email protected]@@12345进一步请求服务器信息. 4.服务器返回客户端想要的信息 回放过程: 1.输入用户

Loadrunner脚本自动关联和手动关联

关于Loadrunner关联一.什么时候需要关联 1.关联的含义        关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联.        其实关联也属于一同特殊的参数化,只是与一般的参数化有些不同        一般的参数化的参数来源于一个文件.一个定义的table.通过sql写

UltraEdit-32 使用技巧:右键关联,取消 bak文件

1.最近安装的UltraEdit-32 没有右键关联,可以在 高级 ->配置 ->文件关联 中 勾选 继承到资源管理器 2.UltraEdit-32会自动备份编辑的文件,可以取消,但是建议保留,因为遇到意外情况可以恢复 UltraEdit-32 使用技巧:右键关联,取消 bak文件

LoadRunner使用之变量关联

性能测试LR小结之参数关联(LoadRunner11.0) 关联对于LR是经常需要用到的,本章使用简单登录来介绍关联功能. 1.       Q:何为关联? 所谓的关联就是把脚本中某些写死的代码(hard-coded)数据,转变成撷取自服务器所送的.动态的.每次都不一样的数据.通俗讲就是变量替换,把每次访问页面中的一些动态参数,使用固定的变量进行替换.如:最常见的sessionid,不同用户访问系统会产生不同的sessionid, 2.       Q:为什么要关联? 如在一个登录脚本中用户登录

自动关联

1.关联介绍 2.关联的目的 3.一般的关联步骤 4.设置示例网站 5.进行自动关联 6.常见的需要关联的情景

Qt信号与槽自动关联机制

参考链接1:http://blog.csdn.net/skyhawk452/article/details/6121407 参考链接2:http://blog.csdn.net/memory_exception/article/details/50953005 信号与槽可以通过使用手写代码显式的实现关联 ,也可以运用 QMetaObject 类规定的槽 函数命名范式来实现自动关联. 显示关联 class MyWidget : public QWidget { Q_OBJECT public: M

如何做LR自动关联和手动关联?

一.什么时候需要关联   1.关联的含义        关联的含义A(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联. 关联的含义B(correlation):就是把脚本中某些写死的代码(hard_coded)数据,转变成撷(xie)取自服务器所送的.动态的.每次都不一样的数据. 其实关联也

【已解决】pycharm无法自动关联jinja2

用pycharm新建项目时,设置成了空白项目,导致在写HTML模板时,无法自动关联jinja2语法.经过搜索尝试,解决方法如下: 1.打开项目目录下.idea/XXX.iml文件(XXX为项目名) 2.在现有的component标签的同级,添加如下代码: </component> <component name="TemplatesService"> <option name="TEMPLATE_CONFIGURATION" value

关于Entity Framework自动关联查询与自动关联更新导航属性对应的实体注意事项说明

一.首先了解下Entity Framework 自动关联查询: Entity Framework 自动关联查询,有三种方法:Lazy Loading(延迟加载),Eager Loading(预先加载),Explicit Loading(显式加载),其中Lazy Loading和Explicit Loading都是延迟加载. (注:由于Entity Framework版本的不同,以及采用不同的模式(DB First,Model First,Code First)来构建的Entity,最终导致可能自