|
如何深入理解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中关联的理解有帮助。 |
评分
-
查看全部评分
|