51Testing软件测试论坛

标题: 如何深入理解LoadRunner的关联 [打印本页]

作者: rickyzhu    时间: 2007-8-18 15:39
标题: 如何深入理解LoadRunner的关联
如何深入理解LoadRunner中的关联

最近很多朋友问起关联的问题,而且关联是LR中相当重要,而且比较难理解的一个话题。有感于此,我写了一篇简单的帖子,跟大家分享我理解的关联。拍砖引玉,也欢迎大家拍砖。原帖可以在我的博客找到:

http://www.rickyzhu.com/2007/08/18/how-to-understand-correlation/




说关联之前先说说正则表达式吧(也叫规则表达式,其实说的是一个东西)

在脚本语言中,给定一个复杂的字符串,如果要取其中符合一定模式的字符或者字符串,就需要进行模式匹配,这个时候正则表达式就是最好的解决方案了。下面举个简单的例子说说。

给定一个字符串org:

“Value=/wEPDwUKLTY4MzkwMjI5MA9kFgJmD2QWAg==”, ENDITEM,

假如我们要匹配Value=/后面的这个很大的值,那么用正则表达式改怎么写呢?
下面给出一种Tcl语言的正则表达式写法(写法不止一种),

set org “Value=/wEPDwUKLTY4MzkwMjI5MA9kFgJmD2QWAg==”

if [regexp -all {Value=/(.*)==} $org match value] {
puts $value
}

这里用到了两个参考,前面的边界和后面的边界,前面的边界是:\”Value=/, 后面的边界是:==\” 利用这两个边界,左边界和右边界,我们就可以准确的定位和匹配这个需要的字符串。

说了这么多,现在步入正题,LoadRunner中的关联。其实前面介绍了正则表达式,明白点的朋友可能已经知道我想说什么了–这就是我理解的LoadRunner中关联的内部实现,当然可能实际的实现比这个要复杂的多。

那个字符串org就是我从一段脚本中摘录过来的,是一个web page的源代码中的一句话,LoadRunner通过web_reg_save_param函数在内部利用正则表达式把这个值匹配下来,然后存起来,以备后面使用。

web_reg_save_param函数有两个很重要的参数,就是LB和RB,这就是我前面正则表达式里面用的左边界和右边界。这个值是在调用之前提前取出来的,所以web_reg_save_param这个方法一定要写在使用调用或者打开页面的前面。

抛砖引玉,希望对加深大家对LoadRunner中关联的理解有帮助。
作者: 423799223    时间: 2007-8-18 18:03
支持楼主
不错
我只会用些简单的关联
作者: 423799223    时间: 2007-8-18 18:06
楼主说的这个比较简单的
我也会用
楼主能不能帮我看看这个网站的关联
www.orsoon.com  未来软件园
我用他录制脚本
老是找不到需要关联的地方
VUGEN提示出错的地方也找不到
麻烦楼主指导下
作者: rickyzhu    时间: 2007-8-18 22:04
简单的理解了,复杂的一样,重要的是你理解了关联的本质没有。

另外,切记一点:不要为了关联而关联。
作者: fish_yy    时间: 2007-8-19 08:20
顶,斑竹!
作者: Ramon22    时间: 2007-8-19 14:02
ding
作者: wzjefc    时间: 2007-8-19 17:09
关联还是一个比较复杂技术
作者: rickyzhu    时间: 2007-8-20 10:35
标题: 回复 #7 wzjefc 的帖子
不过本质是简单的,如果理解了这一点,就明白了。
作者: pumas    时间: 2007-8-21 09:05
谢谢楼主了!

感觉跟C里面的define有点像,是不是?

是不是一个道理?

说明里的什么“简化代码”、“用于数据”、“容纳唯一数据”把我整晕了!
作者: 423799223    时间: 2007-8-21 09:31
有些关联的数据很容易找
比如这个网站的关联
www.orsoon.com
为什么我就一直找不到关联呢
导致每次都无法回放
作者: Zee    时间: 2007-8-21 10:58
其实这个函数在help中有比较详细的说明。

首先,它是一个注册类型函数。
实现的方式就是:先定义一个变量,并分配空间(默认情况下是256位)。然后按左右边界值来匹配,我感觉用不到正则表达式。
我的想法如下:
1,录制时得到的动态数据对回放是没有意义的,不需要拿正则表达式去替代这些数据。
2,只需要判断左右边界。
我觉得就是用C语言实现一个search的功能。就够了。

一家之言。

[ 本帖最后由 Zee 于 2007-8-21 11:45 编辑 ]
作者: tttttnnnnn2001    时间: 2007-8-21 11:04
老天哪!怎么这么难啊?
作者: 梦想流浪    时间: 2007-8-21 11:36
关联其实不难,理解了就好,多看看help,多实践一下就好了,呵呵
作者: alextowxm    时间: 2007-8-24 11:11
我现在看了好多的关联的资料
但是要是关联的在÷实际练习就好了 比看强
作者: caocao668    时间: 2007-8-24 11:20
还在学习中:关联
作者: wangzm    时间: 2007-8-24 14:07
关联的东东确实比较难,学习中
作者: qinxiaocang1202    时间: 2008-12-12 12:10
标题: 关联
我做了有关动太验证码的关联问题,总是出错:HTTP status-Code=500(internal server error)是什么原因,哪位同学能帮忙录制一份,传起上来啊,非常感谢
作者: caqwl    时间: 2009-1-6 09:39
谢谢楼主 收益非浅
作者: hbtest    时间: 2010-12-7 09:08
还没有思路,正在学习中。
作者: sincool    时间: 2010-12-7 10:29
直接找关联不难,难的是怎么优化关联,比如BBS发帖回帖的时候,虽用到关联,但似乎脚本需要代码来优化一下,这个本人正在学习
作者: hwm831002    时间: 2010-12-7 14:01
学习中,只知道简单的关联
作者: hwm831002    时间: 2010-12-7 14:04
回复 1# rickyzhu


    受益匪浅
作者: 独一无二的昵称    时间: 2011-4-15 12:03
刚在LZ的博客看了这个,51上就看到LZ的这贴了,真巧
作者: lihailing    时间: 2011-5-24 12:00
我都很少用关联呐




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2