LoadRunner关联函数怎样捕获服务器响应,LoadRunner关联函数边界值设置这个问题,看起来像是技术点,其实它直接决定了你性能测试脚本能不能正常跑。很多脚本表面没错,但一执行就出问题,根源就在“关联”没有处理好。特别是现在很多系统返回的内容都是动态的,像token、session、验证码、订单ID等等,如果你不在运行时实时提取,那下一步请求就会失败。这时候,就得用到LoadRunner的关联函数。

一、LoadRunner关联函数怎样捕获服务器响应
LoadRunner通过在请求之前设置一个“监听器”,在服务器返回内容之后,从响应体里提取出你要用的那一段数据。这个操作,就是所谓的“关联”。
1.用web_reg_save_param提取数据
这是最常用的方式。写法很简单,结构如下:

比如一个接口返回了:

你想提取"abc123xyz456"这一段内容,那就这么写:

2.写的位置一定要在请求前面
这是很多人一开始容易犯的错。你想从登录接口中提取token,就必须把`web_reg_save_param`写在登录接口的`web_custom_request`或`web_url`函数前面。否则,LoadRunner根本不知道你要监听哪个响应,当然也抓不到值。
3.把提取到的值用在后续步骤
提取成功后,你就可以在接下来的接口中直接使用这个变量,比如:

只要写成`{变量名}`的格式,LoadRunner会在运行时自动替换。
4.提取JSON结构更方便的方法
如果接口返回的是标准JSON,可以用`web_reg_save_param_json`,比手动设边界方便很多:

只要JSON结构清晰,提取字段就和“读路径”一样直观,不用边界、不怕格式变。

二、LoadRunner关联函数边界值设置
如果你不使用`web_reg_save_param_json`,那提取字段就必须设定“左边界”和“右边界”。这是整个提取过程中最关键的部分,稍有错误,提取就会失败。
1.左右边界怎么找?
打开VuGen,把日志设置为Extended log,并启用“Data returned by server”,然后运行一次脚本。到Replay日志里去看响应内容,找到你想提取的字段,比如:

你要抓的就是value里的内容,那:
左边界是:`value="`
右边界是:`"`
代码写成:

2.设置时注意以下问题:
别包含目标值,只写前后标记,目标值中间的内容是自动抓的
边界不能模糊,尽量挑前后唯一的字段
防止空格和换行陷阱,有时候复制的边界可能包含隐藏字符,建议直接手敲
防止编码干扰,有些接口返回内容是压缩的,先确认日志里内容是否是明文
3.多个字段提取时怎么设置?
如果一个响应中返回了多个结构一样的字段,比如一页商品列表中有10个商品ID,都写成了:

那你可以这么写:

这会把所有ID提取出来,形成一组变量:
`{product_id_1}`
`{product_id_2}`
……
`{product_id_count}`表示总共有多少个
你可以写个循环随机用一个,比如:

4.提取不到值,一般都是边界写错了
如果你跑了一次脚本,结果发现变量是空的,第一时间就去检查边界是不是写错了。别去怀疑服务器,90%的问题都是你设的LB/RB没有正确匹配返回内容。

三、关联函数使用中的实战建议
很多测试人员初学LoadRunner时卡在这个地方,下面这几条经验是踩坑踩出来的。
1.提取之后一定要打印变量值看看
不要盲信自己写的提取逻辑,加一行输出最稳妥:

这个习惯能省掉你一堆调试时间。
2.加判断防止变量为空还继续跑
你可以写一个简单的判断逻辑:

3.对于复杂的接口,宁愿少提几个字段,也别一次抓一堆
提太多字段,不好管理。你只提用得上的,其他的保持原样。不确定哪些字段后面要用,就边跑边调。
4.JSON接口优先用json提取函数
很多人图省事用传统`web_reg_save_param`提JSON字段,这其实很容易错位。JSON结构建议直接用`web_reg_save_param_json`,又快又准。
总结
LoadRunner关联函数怎样捕获服务器响应,LoadRunner关联函数边界值设置这两项能力,是性能测试工程师最基础但也最容易出错的技能。它看起来只是代码的一行,但处理不好,会导致整个流程都跑不通。掌握了提取技巧、熟悉了边界设置,哪怕系统逻辑再复杂,脚本也能灵活应对,真正做到“让每个用户都跑通业务流程”,这是性能测试的根本目标。