LoadRunner关联的例子

本文介绍LoadRunner中的关联技术,包括如何从服务器响应中提取动态数据并保存为参数供后续请求使用。通过具体示例展示了关联函数的应用及位置注意事项。
1、关联是获取服务器返回给客户端的动态数据(字符串),把该字符串保存在参数中,在后面的函数中调用
  2、注意关联函数的位置
  例子
Action()
{
web_reg_save_param("UserSession",
"LB=name=userSession value=",
"RB=>",
"Ord=1",
"Search=NoResource",
LAST);
web_url("WebTours",
"URL=http://127.0.0.1:1080/WebTours/",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
web_submit_data("login.pl",
"Action=http://127.0.0.1:1080/WebTours/login.pl",
"Method=POST",
"TargetFrame=body",
"RecContentType=text/html",
"Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home",
"Snapshot=t2.inf",
"Mode=HTML",
ITEMDATA,
"Name=userSession", "Value={UserSession}", ENDITEM,
"Name=username", "Value=xxx", ENDITEM,
"Name=password", "Value=xxx", ENDITEM,
"Name=JSFormSubmit", "Value=off", ENDITEM,
"Name=login.x", "Value=53", ENDITEM,
"Name=login.y", "Value=8", ENDITEM,
LAST);
return 0;
}
  服务器响应的信息
  <input type=hidden name=userSession value=110598.691130012fziiQcApVHfDtVDDpfcVAf>
  运行的结果
Action.c(11): Notify: Saving Parameter "UserSession = 110598.555285541fziiQVDpViHfDtVDDptHQVcf".
Action.c(11): Found resource "http://127.0.0.1:1080/WebTours/images/mer_login.gif" in HTML "http://127.0.0.1:1080/WebTours/nav.pl?in=home"   [MsgId: MMSG-26659]
Action.c(11): web_url("WebTours") was successful, 6445 body bytes, 1608 header bytes   [MsgId: MMSG-26386]
Action.c(21): Notify: Parameter Substitution: parameter "UserSession" =  "110598.555285541fziiQVDpViHfDtVDDptHQVcf"
### LoadRunner关联的使用方法 #### 1. 自动与手动关联的选择 尽管 LoadRunner 提供了自动关联功能,但在实际应用中可能会遇到参数个数不足或错误的情况。因此,在必要时需进行手动调整以确保准确性[^1]。 #### 2. 设置 HTML 和 URL 及 Token 关联 为了配置 HTML 或者 URL 并处理 token 的关联,可以利用 `web_reg_save_param_ex` 函数指定左边界 (`LB`) 和右边界 (`RB`) 来捕获特定的数据片段作为参数存储起来。例如: ```python // Correlation comment - Do not change! // Original value='48d5b44a89864d17b86509a201cc942c' // Name ='CorrelationParameter_1' web_reg_save_param_ex( "ParamName=CorrelationParameter_1", "LB=\"\"", "RB=\"\"", LAST); ``` 这段代码会将位于双引号之间的值提取出来并保存到名为 `CorrelationParameter_1` 的变量里[^2]。 #### 3. 不同类型的关联函数介绍 LoadRunner 支持四种主要的关联函数用于捕捉动态数据: - **`web_reg_save_param()`**: 这是最基础的形式,适用于简单的字符串匹配场景。 - **`web_reg_save_param_ex()`**: 此版本支持更复杂的模式识别,包括正则表达式的运用。 - **`web_reg_save_param_regexp()`**: 推荐的方式之一,特别适合于复杂条件下的精准定位。 - **`web_reg_save_param_xpath()`**: 当目标页面遵循 XML/XHTML 结构化文档标准时可选用此选项。 其中最常被使用的两种分别是 `web_reg_save_param_ex` 和 `web_reg_save_param_regexp`[^3]。 #### 4. 动态数据信息保存机制 当涉及到注册即将发生的 HTTP 请求以便从中抽取某些部分的信息时,则需要用到像 `web_reg_save_param` 这样的预处理器命令。该指令会在后续的操作触发前预先设定好要寻找的目标范围以及如何将其转换成可用形式给 Vuser 脚本调用[^4]。 #### 5. 实际操作指南 对于初学者来说,可以通过对比两次相同流程产生的差异来确定哪些元素应当被捕获为关联项;随后在适当位置插入相应的检索语句——通常是在预期接收含有待抓取内容的消息之前完成这一步骤。具体做法如下所示: 1. 录制两份完全相同的测试案例; 2. 对比两者间的区别找出变化之处即为目标对象; 3. 应用上述提到的各种工具和技术手段实施具体的编码工作; 4. 将生成好的关联逻辑嵌入至合适的时机点上,比如紧挨着那些依赖这些外部输入的动作前面[^5]。 ### 示例代码展示 下面给出一段完整的示例代码用来说明如何在一个登录过程中实现 session ID 的关联: ```cpp // 假设 SessionID 是每次访问都会改变的关键字段 // 下面的例子展示了怎样把这个不断变动的部分转化为固定名称 'SessionID' // 在发送登录请求之前定义规则去截取所需的 SessionID web_reg_save_param_ex( "ParamName=SessionID", "LB=<input type=\"hidden\" name=\"sessionid\" value=\"", "RB=\" />", LAST); // 执行登录动作 web_submit_data("login.php", "Action=http://example.com/login.php", "Method=POST", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", ITEMDATA, "Name=username", "Value=myUsername", ENDITEM, "Name=password", "Value=myPassword", ENDITEM, "Name=sessionid", "Value={SessionID}", ENDITEM, LAST); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值