模拟环境---LR机票定票系统设置:首页点击administration-勾选Set LOGIN form's action tag to an error page.选项,点击update。

现在许多应用程序都使用动态值,每次LR获取到的动态值都不一致。例如在有些服务器会分配一个唯一的会话,回放时应用程序新创建的Id值与录制时获取到的id值不一致,导致回放提示错误。LR中提供关联解决这个问题。

LR中对参数关联分两种,一种是手动关联,一种是自动关联,自动关联就是LR工具帮你找到,比如按CTRL+F8 可以进行自动关联(或者在toos-recording options-correlation勾选设置,下图),这种方法可以满足一些简单的需求,使用比较方便,但当LR工具找不到关联时,我们就要考虑自动关联了。

还有一种方法,回放关联设置时,这次是失败的,在log页面把每一个关联上,LR自动把关联函数加进去。

最后一种方法是手动编写web_reg_save_param 函数,具体方法如下:

比如说对源码中的<input type="hidden" id="orderId" name="orderId" value="f28958249e141e62312d855ce73252d3"/>的orderId的值进行关联,那么我们可以这样写:

web_reg_save_param("orderId",
   "LB=name=\"orderId\" value=\"",
   "RB=\"",
   LAST);

这个就是要在整个HTML文件中找左边界是:name="orderId" value="

右边界是:"

中间文本的值,找到后赋给orderId。

这样一个手工关联就做好了,很简单吧。

另外:web_reg_save_param一般用在提交web_submit_form,或web_url函数之前。

函数的语法如下所示:

下表列出可用的属性。注意,属性值字符串(例如 Search=all)不区分大小写。

NotFound
找不到边界并且生成了空字符串时的处理方法。默认值
“ERROR”表示找不到边界时 LoadRunner 应发出错误消
息。如果设置为“EMPTY”,则不会发出错误消息,并且
脚本的执行将继续进行。注意,如果为脚本启用了“出现
错误时仍继续”,则即使将 NOTFOUND 设置为
“ERROR”,在找不到边界时脚本将仍然会继续执行,但
会将错误消息写入扩展日志文件中

LB
参数或动态数据的左边界。此参数必须为非空的、以 null
结尾的字符串。边界参数区分大小写;要忽略大小写,请
在边界之后添加“/IC”。如果在边界之后指定“/BIN”,
则指定为二进制数据

RB
参数或动态数据的右边界。此参数必须为非空的、以 null
结尾的字符串。边界参数区分大小写;要忽略大小写,请
在边界之后添加“/IC”。如果在边界之后指定“/BIN”,
则指定为二进制数据.

LB/RB赋值的是你要抓取文本的左/右边的内容,例如你要从"abcdefghijk"中抓取"de"保存在变量中,那么LB="abc"和RB="fghijk"就可以抓到你要的东西了

RelFrameID
与请求的 URL 相关的 HTML 页的层次结构级别。可能的
值为 ALL 或数字

Search
搜索的范围 - 搜索已分隔的数据的位置。可能的值为
Headers (仅搜索页眉)、Body (仅搜索正文数据,而不
包括页眉)或 ALL (搜索正文和页眉)。默认值为 ALL

ORD
此可选参数表示匹配的序号或出现的次数。默认序号为 1。
如果指定“All”,则会将参数值保存在数组中,是将找到的动态变量保存到数组中。默认是ord=1.如果搜索到的字符是多个,并想将他保存在数组里,则ord=all;他们分别保存到pr_1 pr_2 .....。其中pr_count为内部函数,统计数组的个数。

SaveOffset
找到的值的子字符串偏移量,将保存到参数。默认值为 0。
偏移量值必须为非负数,偏移量。从搜索到的字符串中,取子串。默认saveoffset=0.

Savelen
找到的值的子字符串的长度(在指定的偏移量中),将保
存到参数。默认值为 &ntilde;1,表示直到字符串的末尾

Convert
要应用于数据的转换方法:
HTML_TO_URL:将 HTML 编码数据转换为 URL 编码数
据格式
HTML_TO_TEXT:将 HTML 编码数据转换为纯文本格式。

函数的一些使用技巧:
        1、web_reg_save_param必须在获取返回值的操作前面注册,在获取返回值的操作后面使用
        2、保存参数最大不能超过256字节,如果超过256字节请使用int web_set_max_html_param_len (const char *length )函数扩大参数保存范围
        例如:web_set_max_html_param_len ("1024"); //扩大参数最大保存范围为1024字节
        3、LB和RB后面跟着"/ic",则边界大小写都匹配(不加,也就是默认是大小写敏感的)
        例如:web_reg_save_param("IsRight","LB/ic=cache-control: private\r\n\r\n","RB/ic=|",LAST);

LR设置关联---部分内容摘自网络--望见谅的更多相关文章

  1. Android:控件WebView显示网页 -摘自网络

    WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWebClient setWebClient:主要 ...

  2. Ubuntu的常用快捷键(摘自网络)

    篇一 : Ubuntu的复制粘贴操作及常用快捷键(摘自网络) Ubuntu的复制粘贴操作 1.最为简单,最为常用的应该是鼠标右键操作了,可以选中文件,字符等,右键鼠标,复制,到目的地右键鼠标,粘贴就结 ...

  3. LR手动关联参数化问题总结

    所谓的关联就是把脚本中某些写死的代码(hard-coded)数据,转变成截取自服务器所送的.动态的.每次都不一样的数据. 一般情况下,比较聪明的服务器在每个浏览器第一次跟它要数据时,都会在数据中夹带一 ...

  4. CDN(内容分发网络)技术原理

    1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加, 用户数量也在不断增加,受Web服务器的负荷和传输距离 ...

  5. CDN 内容分发网络技术

    1.前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因 ...

  6. 深度剖析:CDN内容分发网络技术原理--转载

    1.前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因 ...

  7. C# 中的内存管理,摘自网络

    C#编程的一个优点是程序员不需要关心具体的内存管理,尤其是垃圾收集器会处理所有的内存清理工作.虽然不必手工管理内存,但如果要编写高质量的代码,还是要理解后台发生的事情,理解C#的内存管理.本文主要介绍 ...

  8. CDN内容分发网络

    CDN的全称是Content Delivery Network,即内容分发网络,其设计思想是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定. CDN系统是在网络 ...

  9. DevOps之内容分发网络CDN

    唠叨话 关于德语噢屁事的知识点,仅提供专业性的精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. <内容分发网络CDN(Content Delivery Network)> 关于虚 ...

随机推荐

  1. setTimeout与setInterval的区别

    setTimeout与setInterval的区别:1.setTimeout设置后隔指定时间后只会执行一次2.setInterval设置后会每隔指定时间执行一次3.setTimeout一般在方法内部使 ...

  2. JAVA实例化class的三种方式

    不多说  直接上例子 package org.lxh.demo15.getclassdemo ; class X{ }; public class GetClassDemo02{ public sta ...

  3. Oracle琐碎笔记2

    备注:以下所有操作均在sqlplus中执行. 开始前输入:spool c:\jiyi.txt;结束后输入:spool off;就会记忆操作的所有记录save c:\sql.sql;保存sql脚本可以使 ...

  4. discuz X3.1的门户文章实现伪静态,利于搜索引擎收录url的地址修改

    最近在捣鼓DZ框架,这两天发现文章的收录情况并不是太理想,做了很多优化方面的工作,今天主要解决了DZ门户的文章链接伪静态化,在这次修改之前,也做过一次在网上找的静态化修改,之前做的方式是: 1.在DZ ...

  5. [转]Resolving kernel symbols

    原:http://ho.ax/posts/2012/02/resolving-kernel-symbols/ KXLD doesn't like us much. He has KPIs to mee ...

  6. Linux网络编程(二)

    Linux网络编程(二) 使用多进程实现服务器并发访问. 采用多进程的方式实现服务器的并发访问的经典范例. 程序实现功能: 1.客户端从标准输入读入一行文字,发送到服务器. 2.服务器接收到客户端发来 ...

  7. Xilinx-Zynq Linux内核源码编译过程

    本文内容依据http://www.wiki.xilinx.com网址编写,编译所用操作系统为ubuntu 14 1.交叉编译环境的安装配置 1)http://www.wiki.xilinx.com/I ...

  8. socket网络编程快速上手(二)——细节问题(1)

    三.细节问题一个也不能少 Socket编程说简单也简单,程序很容易就能跑起来,说麻烦还真是麻烦,程序动不动就出问题.记得刚开始写网络代码的时候,那真是令人抓狂的经历,问题一个套一个,一会服务器起不来了 ...

  9. 项目Splash页面的开发与设计

    项目Splash页面的开发与设计 首先建立一个安卓的项目,然后修改manifest.xml文件,修改应用程序的logo和显示名称,效果图如下: 对应的代码如下: 1 <?xml version= ...

  10. Ubuntu12.04安装配置Theano

    上次写了一个关于DL的开篇内容,本来说是要继续跟进的,后来教研室里面出了一些事情,加上写论文.和隔壁教研室做实验,就一直拖到现在.早就让小K配置环境研究研究Theano,这货和我一样也发拖延症了,理由 ...