Home > 测试工具 > 如何理解LoadRunner中的关联

如何理解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中关联的理解有帮助。

Categories: 测试工具 Tags:

8 Comments

  • At 2007.08.18 21:39, pent said:

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

    • At 2007.08.18 23:42, Athenst said:

      呵呵…逮着了

    • At 2007.08.20 16:34, ben said:

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

      • At 2007.08.20 18:21, ricky.zhu said:

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

      • At 2007.08.21 09:04, ben said:

        期待……

        • At 2007.09.12 11:13, ben said:

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

          • At 2008.04.13 22:11, langwx521 said:

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

            • At 2008.04.14 12:26, ricky said:

              you are right, online reference is a good choice.

            (Required)
            (Required, will not be published)