Loadrunner11的关联问题

上一篇 / 下一篇  2012-08-15 17:33:15 / 个人分类:每天进步一点点

   今天在学习LoadRunner11-中文教程的时候遇到一个问题。第5课解决常见回放问题中第一次涉及到关联问题。文档中讲的那个是“自动关联”。我按照那个方法做了,无奈自动关联的值总是不会出现。在网上查了各种资料,最后弄明白原来这个是Loadrunner11的一个Bug,原来好多朋友都遇到过,有人说是有时候出现,有时候不出现。可能偶的rp差了点,这个值从来就没出现过。没办法,只能用手动关联了。网上有个朋友的日志里解决的过程记录的特别详细,我照着做的,成功了。这里就偷个懒,直接拿过来用了。记录我今天一下午的成果,O(∩_∩)O~
 
 

手动关联的一般步骤:

1、录制两次相同的脚本;

2、使用loadrunner自带的WDiff(Tools->Compare with script)工具,找出两次脚本录制的不同之处,判断是否需要关联;

3、确定插入关联的位置;

4、在脚本视图中插入web_reg_save_param函数建立手动关联;

5、将脚本中需要建立关联的数据用参数替换;

6、验证关联的正确性。

下面详细介绍步骤:

1、录制完一次脚本并保存,这里保存为basic_tutorial_1(录制的步骤根据loadrunner 11 帮助文档上的实例);

2、再次进行相同的步骤进行第二次录制,保存为basic_tutorial_2,点击【Tools】->【Compare with script】,弹出文件选择框,选中名为basic_tutorial_1的文件。

3、WDiff会开启,同时显示二份脚本,并显示有差异的地方。WDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文字。(假如没看到红色字体,请点选【Options】>【View】>【Show Inline Differences】)。

查看二份脚本中差异的部份,每一个差异都可能是需要做关联的地方,lr_thik_time部分的差异可以忽略。

找到不同的部分,然后在输出窗口的【Generation Log】中按Ctrl+F,在查找窗口中粘贴差异部分的内容,点击查找找到后,查看该部分的信息,确认是客户端的请求信息还是服务器回应的信息。

如果出现在****** Request Header For Transaction With Id 3 ******等类似的部分中,那证明是客户端发出的请求,这里是不需要做关联;一般做的关联都是出现在****** Response Body For Transaction With Id 13 ******等类似的Response部分的内容,找到这个信息,记录如下内容:

A、记录这个不同数据之前的内容和之后的内容,如这里的不同数据是带红色部分(<input type=hidden name=userSession value=106846.044795464ftQfiQDptcQVzzzHDcQHfpDzAfHf>)那么它的左边界就是"<input type=hidden name=userSession value=",而右边界就是">"(边界内容越详细越好)。

B、记录这个不同数据出现的位置,是Header还是Body。

4、确认插入关联的位置:

需要重新运行一次脚本,运行前先点击【Vuser(U)】->【Run-time Settings】->[Log],将【Log】中的【Enable logging】勾选上,选择【Extended log】,将【Extended log】中的选项全部勾选上。

重新运行完脚本后,点击输出窗口的【Replay Log】,按CTRL+F,粘帖上<input type=hidden name=userSession value=然后找到两次录制脚本不同点的位置,即如下这一行数据,双击此处,在脚本中的位置之前就是需要插入关联函数的地方。

Action.c(4): <input type=hidden name=userSession value=106853.155690563ftQzcfQpVQfiDDDDDcQHHpfffVHf>\n

5、插入关联函数:

右击上一步骤中,搜索到的脚本位置,在其上方的空白处右击,【插入】->【新建步骤】,弹出添加步骤输入框,输入“web_reg_save_param”,点击确定,弹出将数据保存到参数中输入框,在参数名中输入“UserSession”,左边界“<input type=hidden name=userSession value=”,右边界“>”,勾选搜索范围,选择“正文”,然后点击确定。
成功插入后应看到如下的正确函数:

web_reg_save_param("UserSession",
"LB=input type=hidden name=userSession value=",
"RB=>",
"Search=Body",
LAST);

6、将脚本中有用到关联的数据,用参数代替:

如发出请求的参数如下,那么将原来服务器返回的动态值使用{ UserSession } 来替换:
web_submit_data("login.pl",
"Action=http://127.0.0.1:1080/WebTours/login.pl",
"Method=POST",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
"Snapshot=t2.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value={UserSession}", ENDITEM,
"Name=username", "Value=jojo", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
"Name=JSFormSubmit", "Value=on", ENDITEM,
"Name=login.x", "Value=48", ENDITEM,
"Name=login.y", "Value=4", ENDITEM,
LAST);

7、最后验证关联的正确性:
  回放脚本,验证关联的正确性。


TAG:

引用 删除 50173kaka   /   2019-08-07 15:45:55
5
引用 删除 wangheng9756   /   2014-05-23 16:29:28
总结的很好,今天也遇到这个问题了
Giant321的个人空间 引用 删除 Giant321   /   2013-08-23 15:50:03
3
wangjiajun81的个人空间 引用 删除 wangjiajun81   /   2012-11-15 15:54:40
5
引用 删除 276482207   /   2012-09-07 09:32:22
非常好啊,按照笔者的方法,我终于成功了,写的非常详细啊
引用 删除 276482207   /   2012-09-07 09:30:37
5
zy1050600152的个人空间 引用 删除 zy1050600152   /   2012-08-21 16:21:47
我把以前的关联语句注释掉了 重新生成了一个关联语句 其中不包含>和搜索范围 全文,然后进行了一次编译,编译无错误,最后回放,回放也无误。搞不明白那两个那么设置是为啥,或者我进行更改后,内部发生了变化,但是不影响回放。你说呢?
小溪的测试人生 引用 删除 fxjvv   /   2012-08-21 15:39:26
原帖由zy1050600152于2012-08-21 15:26:21发表
问你几个问题:插入关联函数:
中左边界“(&lt;input type=hidden name=userSession value=”,为什么.


这里左边界就是"<input type=hidden name=userSession value=”  右边界为">" ,那个小括号应该是笔误。至于右边界能否不填以及搜索范围为什么是正文我也不是特别清楚,你可以自己验证下哈
zy1050600152的个人空间 引用 删除 zy1050600152   /   2012-08-21 15:26:21
问你几个问题:插入关联函数:
中左边界“(<input type=hidden name=userSession value=”,为什么有个(,有必要吗?还有右界不填“>”,空着行吗?搜索范围为什么为全文?
zy1050600152的个人空间 引用 删除 zy1050600152   /   2012-08-21 10:54:46
11居然有这样的bug
 

评分:0

我来说两句

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 13440
  • 日志数: 9
  • 建立时间: 2012-08-01
  • 更新时间: 2012-09-21

RSS订阅

Open Toolbar