LoadRunner专题——关联 (Correlation)

本文详细介绍LoadRunner中的关联技术,涵盖关联的概念、应用场景及其在不同协议下的实现方法,如Web网页和winsocket关联,并提供多种关联技巧及案例。

LoadRunner专题

       ——关联Correlation

 

专题关键字:LoadRnnerCorrelation、关联、专题

 

内容简介

本专题讲述了LR中的关联(Correlation技术,解释什么是关联,在什么情况下需要关联,关联的重要意义,以及如何进行关联,在后面的例子中我们主要看到了基于Web网页的关联,以及基于win socket的关联等。关联在LR脚本编写中是一个重要的应用,在脚本框架录制完成后,有些时候脚本回放是不成功的,有可能是业务上的不成功也有可能是脚本上的不成功,这些往往很多时候是因为,脚本中有些动态的数据,需要在之前的访问中获得,然后通过关联技术提取到变量中,然后将变量替换到后面提交到服务器的数据。我们从以下几个方面对LR中的关联进行阐述:

1)  LoadRunner中的关联

2)  如何在LR中做关联

3)  LoadRunner中的一个关联技巧

4)  LoadRunner中多值关联的3种处理方式

5)  LR中点鼠标做关联(winsock协议)

6)  负载试中动态参数关联详解

 

1.      LoadRunner中的关联

 

http://www.Ltesting.net/html/16/n-160516.html

 

编者语:

本篇文章讲述了,LR中的关联是什么,以及如很进行关联,关联的是什么,都有比较详尽的描述,在进行脚本关联的过程中大家可以参考这篇文章进行,另外在这篇文章中作者还举了一些具体的例子,很不错。

 

2.      如何在LR中做关联

http://www.Ltesting.net/html/15/n-160515.html

 

编者语:

本篇文章采编自己好友Zee的博客,Zee通过描述问题所在,以及什么是Session,从而描述在LR中如何针对http/html协议进行自动关联和如何进行手动关联,本篇文章的特点分析了关联数据的来龙去脉,分析的虽然不是很深,但是对于初学关联的朋友应该有比较不错的帮助。

3.      LoadRunner中的一个关联技巧

http://www.Ltesting.net/html/17/n-160517.html

编者语:

本篇文章采编自好友“导演”的博客,导演这个小子一直从事建设银行项目的自动化测试,本篇文章写了如何在LR关联过程中应用到一些具体的技巧,虽然这篇文章曾经遭到Zee的部分质疑,但是这篇文章还是写的不错滴,在这篇文章中写道了关于lr_save_string, sprintf()、atoi();等一些C语言标准函数和C语言基础架构在LR脚本中的应用,具体信息请大家参加上述链接中的内容。

4.      LoadRunner中多值关联的3种处理方式

http://www.Ltesting.net/html/19/n-160519.html

编者语:

本文采编自网络文章,本文通过三种不同的方式实现LR中的多值关联的技术,在文章描述中主要应用了脚本的描写方式,可以很直接的看到脚本,这三种方式分别是:1将变量转为参数,直接在请求中使用参数,2)通过strcpystrcat方式组织字符串,通过变量发送请求,3)通过sprintf格式化输出生成需要的字符串,通过变量发送请求。具体的信息请参见上述链接中的原文。

5.      LR中点鼠标做关联(winsock协议)

http://www.Ltesting.net/html/18/n-160518.html

编者语:

本篇文章也是采编自好友Zee的博客,Zee作为一代愤青,写了不少关于LR的文章,这是他其中的一篇;本篇主要写在winsocket中鼠标的操作的关联,讲解了Winsocket中的关联函数lrs_save_param函数的应用,以及在整个过程中如何应用这些函数。详细的请参见本文吧。(备注:这下子在我发文之前做手术了,呵呵。)

6.      负载试中动态参数关联详解

http://www.Ltesting.net/html/20/n-160520.html

 

编者语:

本篇文章采编自网络,本篇文章依据负载测试描述了LR中的关联技术,包括:为什么需要动态参数关联、2.LR中动态关联的原理、3.B/S动态关联的方法、4.自动关联的实现、5.手动脚本的关联实现;系统的说明了LR中关联的特点和方法,作为本文的最后一篇,算是复习和总结吧。具体内容详见上述链接中的内容。

 

编者总结:

本文作为LR专题系列的其中的一个专题,在网络上搜索到了很多文章,编者根据自己对于LR多年的经验以及本专题的特点,选择了上述的文章,LR中的关联技术作为LR脚本开发中的一项重要技能,需要大家慢慢研究,其实还包括很多有意思的知识,比如如何获得需要关联的数据,如何找到关联函数的插入点,如何取得用户需要的数据等等,学海无涯我们的文章很可能有不全面或者看问题片面的地方或者有好的建议可以发到我的信箱:ligang@testage.com.cn

                                                            编者:阳光

软件测试时代 软件测试技术 软件测试博客 软件测试视频 开源软件测试技术 软件测试论坛 软件测试沙龙 软件测试资料下载 软件测试杂志 软件测试人才招聘

<think> 嗯,用户的问题是关于LoadRunner 12关联无法自动识别的解决方案。我需要结合之前提供的引用内容来给出全面的解答。 用户明确提到了自动关联失效的情况,引用[2]提到过自动关联依赖LR的规则匹配,引用[4]也指出动态数据变化可能导致自动关联失败。这说明核心问题在于动态数据的识别机制。 从引用[1]看,自动关联有两种触发方式:录制时启用规则和回放时扫描响应差异。用户的问题可能涉及这两种情况。引用[5]提到要检查"Enable correlation during recording"设置,这是首要排查点。 引用[2]详细说明了自动扫描关联的工作原理——通过对比响应差异,用正则表达式提取数据。如果规则库没有覆盖特定数据模式,比如非常规格式的JSON或动态ID,就会导致识别失败。这时需要手动关联,如引用[2]和[4]都强调的。 关于手动关联的具体操作,引用[2]演示了如何通过右键参数进入关联窗口,并编写精准的正则表达式。特别要注意括号()的捕获作用,这是提取动态值的关键语法点。 此外引用[3]提到LR12和LR11的界面差异较大,可能需要引导用户注意新版设置路径的变化,比如"Correlation Studio"的位置。 最后补充几个实用技巧:用关联函数替代自动规则,检查边界值定义,以及关联脚本调试方法。这些能覆盖用户未提及但常见的问题场景。 </think> 以下是针对 LoadRunner 12 自动关联无法识别的综合解决方案,结合引用内容和实践经验整理: ### 🔧 一、检查核心设置(引用[1][5]) 1. **启用录制时自动关联** - 路径:【Recording Options】> 【Internet Protocol】> 【Correlation】 - 勾选 ✅ `Enable correlation during recording`(确保内置规则生效) - *若未开启此选项,系统不会应用预定义关联规则* 2. **启用回放扫描功能**(引用[1][2]) - 路径:【Tools】> 【General Options】> 【Correlation】 - 勾选 ✅ `Save correlation information during replay` - 勾选 ✅ `Show scan for correlations popup after replay of vuser` - *回放后自动弹出扫描窗口,提示潜在关联点* ### 🔍 二、针对性解决策略 #### ▶ 情况1:自动扫描未提示关联点(引用[2][4]) - **手动关联步骤**: 1. 回放脚本后查看 **Snapshot - Response Body** 2. 定位服务器返回的动态值(如 `token="a1b2c3"`) 3. 右键动态值 → 选择 `Create Parameter` → 命名参数(如 `TokenParam`) 4. 在脚本开头添加注册函数: ```c web_reg_save_param("TokenParam", "LB=token=\"", "RB=\"", LAST); ``` 5. 替换脚本中原静态值为 `{TokenParam}` #### ▶ 情况2:自动关联规则失效 - **扩展规则库**(引用[1][5]): 1. 路径:【Recording Options】> 【Internet Protocol】> 【Correlation】 2. 点击 `Add Rule` 添加自定义规则: - `Left Boundary`:动态值左侧标识(如 `"sessionId":"`) - `Right Boundary`:右侧标识(如 `"`) 3. 重新录制脚本触发新规则 #### ▶ 情况3:动态数据变体复杂(引用[2][4]) - **正则表达式进阶处理**: ```c web_reg_save_param_regexp( "ParamName=DynamicData", "RegExp=value=\"([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})\"", SEARCH_FILTERS, LAST); ``` - 关键:用 `()` 捕获动态部分,`[0-9a-f]` 匹配UUID等格式 ### ⚠️ 三、常见故障排查 1. **关联位置错误** - 关联函数必须放在 **触发动态值的请求前**(如 `web_url` 前) - ❌ 错误示例:函数写在请求后 → 参数获取失败 2. **边界值不唯一**(引用[2]) - 检查 `LB/RB` 是否在响应中唯一,避免匹配多个值 - 解决方案:扩展边界长度(例如 `LB=name="csrf_token" value="`) 3. **特殊字符转义** - 边界含双引号时需转义:`LB=\"value\":\"` → 实际匹配 `"value":"` ### 💡 四、最佳实践建议 1. **双模式验证**(引用[1][4]): - 先开启自动关联 → 回放扫描 → 人工验证提示的关联点 - 对未识别的关键数据手动补充关联 2. **调试技巧**: - 开启日志:【Run-time Settings】> 【Log】> `Extended log` → 勾选 `Data returned by server` - 查看参数替换结果:`lr_log_message("Token=%s", lr_eval_string("{TokenParam}"));` > **关键结论**:LoadRunner 自动关联依赖规则库和响应差异对比,对非标准数据结构(如JSON嵌套、自定义加密)识别率较低。此时需优先采用 **手动关联+自定义边界** 方案(引用[2][4]),并结合日志分析验证参数捕获效果[^1][^2][^4]。 --- ### 🔎 相关问题 1. LoadRunner 手动关联时如何精准定位动态值的边界? 2. 关联函数 `web_reg_save_param` 和 `web_reg_save_param_regexp` 的使用场景有何区别? 3. 如何验证关联参数是否成功替换了脚本中的动态数据? 4. LoadRunner 12 在处理 RESTful API 动态参数时有哪些特殊配置? [^1]: loadrunner自动关联知多少 [^2]: loadrunner12() :关联 [^4]: loadrunner12 设置关联:手动关联、自动关联 [^5]: LoadRunner技巧之自动关联
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值