如何理解LoadRunner中的关联

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

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

给定一个字符串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中关联的理解有帮助。

This entry was posted in 测试工具 and tagged . Bookmark the permalink.

8 Responses to 如何理解LoadRunner中的关联

  1. pent says:

    简单扼要,容易理解。难得你现在还有空写这些啊 :)

  2. Athenst says:

    呵呵…逮着了

  3. ben says:

    LR9.0可以自动关联,是不是在测试的时候就可以不去考虑关联的问题了啊 ??

  4. ricky.zhu says:

    自动关联是基于关联规则的,LR8也可以自动关联,但是需要的时候还是需要考虑的。有空的时候我在介绍一下关联规则。

  5. ben says:

    期待……

  6. ben says:

    呵呵 再来看这个文章, 对关联有了个新的认识。Tks
    web_reg_save_param( “PID”,
    “LB=PID=”
    “RB=**”,
    LAST);

  7. langwx521 says:

    注册函数web_reg_save_param还有好多参数值的,呵呵,要好好用还是要看看函数说明的,呵呵

  8. ricky says:

    you are right, online reference is a good choice.

Leave a Reply

Your email address will not be published. Required fields are marked *