365bet在线手机版-det365下载-best365手机官方

【性能工具】LoadRunner之关联详解

【性能工具】LoadRunner之关联详解

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

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

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

什么是关联?

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

什么内容需要关联:当脚本中的数据每次回放都发生变化时,并且这个动态数据在后面的请求中需要发送给服务器,那么这个内容需要通过关联来询问服务器,获得该数据的变化结果。例如:

1.登录字符串。带有会话 ID 或时间戳等动态数据的登录字符串。

2.日期/时间戳。使用日期或时间戳或者其他用户凭据的任意字符串。

3.常见前缀。后跟字符串的常见前缀,如 SessionID 或 CustomerID

web_reg_save_param函数说明

语法:

int web_reg_save_param(const char *ParamName, , LAST);

参数说明:

· ParamName: 存放得到的动态内容的参数名称

· list of Attributes: 其它属性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。属性值不分大小写

Notfound: 当在返回信息中找不到要找的内容时应该怎么处理

Notfound=error: 当在返回信息中找不到要找的内容时,发出一个错误讯息。这是缺省值。

Notfound=warning: 当在返回信息中找不到要找的内容时,只发出警告,脚本也会继续执行下去不会中断。

LB( Left Boundary ) : 返回信息的左边界字串。该属性必须有,并且区分大小写。

RB( Right Boundary ): 返回信息的右边界字串。该属性必须有,并且区分大小写。

RelFrameID: 相对于URL而言,欲查找的网页的Frame。此属性质可以是All或是数字,该属性可有可无。

Search : 返回信息的查找范围。可以是Headers,Body,Noresource,All(缺省)。该属性质可有可无。

ORD : 说明第几次出现的左边界子串的匹配项才是需要的内容。该属性可有可无,缺省值是1。如为All,则将所有找到的内容储存起来。

SaveOffset : 当找到匹配项后,从第几个字元开始存储到参数中。该属性不能为负数,缺省值为0。

SaveLen :当找到匹配项后,偏移量之后的几个字元存储到参数中。缺省值是-1,表示一直到结尾的整个字串都存入参数。

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

录制过程:

1、输入用户名密码登录

2、服务器端返回一个sesiionID@@@12345

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

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

回放过程:

1、输入用户名密码登录

2、客户端返回新的sesiionID@@@23456

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

4、服务器你经过验证发现你的sesiionID@@@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 ”

← 上一篇: 在EXCEL中将一长串数字转化成时间格式(yyyy-MM-dd hh:mm:ss)
下一篇: DNF极跃大挑战怎么做 →

相关推荐

永劫无间妖刀姬红皮蛉魂梦使多少钱

永劫无间妖刀姬红皮蛉魂梦使多少钱

2025-08-05 09:47:45 阅读: 7853
10万 USD兑换CNY: 美元兑人民币

10万 USD兑换CNY: 美元兑人民币

2025-10-23 01:48:26 阅读: 3916
42HS48步进电机实验

42HS48步进电机实验

2025-08-03 04:28:45 阅读: 4591
手机的收藏在哪里找

手机的收藏在哪里找

2025-10-03 03:15:40 阅读: 3414
高田贤三(KENZO)京东自营专区

高田贤三(KENZO)京东自营专区

2025-08-11 09:17:03 阅读: 648
学灯光设计一般需要多久

学灯光设计一般需要多久

2025-07-17 22:21:50 阅读: 909
小米云服务丢失模式关闭方法

小米云服务丢失模式关闭方法

2025-08-27 15:17:20 阅读: 2092
深入理解P2P网络架构与实现

深入理解P2P网络架构与实现

2025-09-28 14:27:19 阅读: 5429