总结一下Loadrunner中的检查点函数,主要介绍两个函数:web_find()和web_reg_find();这两个函数均用于内容的查找,但两者也有本质的区别,具体介绍如下:
一、web_find()函数
该函数的作用是“从HTML页面中查找指定的文本字符串”常用参数及含义如下:
web_find("web_find", //定义该查找函数的名称
"RightOf=a", //定义查找字符的右边界
"LeftOf=b", //定义查找字符的左边界
"What=name", //定义查找内容
LAST);
使用该函数注意以下事项:
1、位置
该函数在请求的页面内容完全显示出来以后,在页面中进行查找,所以只能写在打开页面的动作之后
2、录制模式
该函数只能在基于HTML模式录制的脚本中进行查找
3、必须启用内容检查选项
打开LoadRunner的Virtual User
Generator组件,选择Vuser->runtime setting->Preferences里面,把Enable image and text check选中,启用检查点,否则将不执行该查找函数;
4、在VB和JAVA语法中不支持该函数
5、被查找的文本内容中间不要有空格,否则运行后有错误
该函数有以下缺点:
1、 执行效率较低
2、 不返回查找结果情况,如想在执行该函数后根据查找结果做进一步操作时,没有返回值可以依据
例如:
在页面中查找“登录成功”的字符串,如果找到该字符串在日志中输出“登录成功”,如果找不到该字符串,则在日志中输出“登录失败”,此时使用该函数没有依据来做此判断,但使用web_reg_find()函数,使用它其中的SaveCount可以进行判断,具体方法我们下面介绍。
二、web_reg_find()函数
该函数的作用是“在缓存中查找相应的内容”,常用参数及含义如下:
web_reg_find("Search=Body", //定义查找范围
"SaveCount=ddd", //定义查找计数变量名称
"Text=aaaa", //定义查找内容
LAST);
使用该函数注意以下事项:
1、位置
该函数写在要查找内容的请求之前,通常情况下写在如下六个函数之前:
web_castom_request();
web_image();
web_link();
web_submit_data();
web_submit_form();
web_url()
2、使用技巧
在该函数的参数中有个“SaveCount”,该参数可以记录在缓存中查找内容出现的次数,我们可以使用该值,来判断要查找的内容是否被找到,下面举个例子来说明:(引用LR的帮助中的例子)
// Run the Web Tours sample
web_url("MercuryWebTours",
"URL=http://localhost/MercuryWebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
// Set up check for successful login by looking for "Welcome"
web_reg_find("Text=Welcome",
"SaveCount=Welcome_Count",
LAST);
// Now log in
web_submit_form("login.pl",
"Snapshot=t2.inf",
ITEMDATA,
"Name=username", "Value=jojo", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
"Name=login.x", "Value=35", ENDITEM,
"Name=login.y", "Value=14", ENDITEM,
LAST);
// Check result
if (atoi(lr_eval_string("{Welcome_Count}")) > ){ //判断如果Welcome字符串出现次数大于0
lr_output_message("Log on successful."); }//在日志中输出Log on successful
else{ //如果出现次数小于等于
lr_error_message("Log on failed"); //在日志中输出Log on failed
return();
我觉得这个方法非常有用,我们可以举一反三,应用到我们实际的项目中
三、插入检查点函数的方法
1、手工写入,在需要插入函数的位置手工写入该函数
2、光标停留在要插入函数的位置,在INSERT菜单中,选择new
step,在列表中选择或查找要插入的函数,根据提示填写必要的参数
3、在tree view模式下,在树状菜单中选中要插入函数的位置,右键,选择insert after或insert before,根据提示填写必要的参数
四、总结
1、这两个函数类型不同,web_find是普通函数,web_reg_find是注册函数;
2、这两种函数在运行机制不同,当客户端向服务器发出一个请求的时候,服务器进行响应;当响应的数据在缓存中的时候,注册函数可以在缓存中查找所要查找的内容;而普通函数(例如:web_find)需要等我们请求的显示页面完全显示出来后,从这个显示页面中进行查找制定的字符串内容
3、web_find使用时必须开启内容检查选项,而web_reg_find则没有此限制
4、web_find只能只用在基于HTML模式录制的脚本中,而web_reg_find没有此限制
5、web_find是在返回的页面中进行内容查找,web_reg_find是在缓存中进行查找
6、web_find在执行效率上不如web_reg_find
附录
web_find
语法:
int web_find (const char *StepName, <Attributes and Specifications list>,
char *searchstring, LAST );
参数:
1、StepName:步骤名称,在Tree视图中出现。
2、Attributes and Specifications list:
支持的属性有:
Frame:在多Frame的情况下,定义要查找Frame的范围。
Expect:定义在什么情况下函数检查成功:找到了指定的搜索标准或者没有找到。例如说,可以检查指定的错误信息是否出现在web页面中。合法的值有2个:found和notfound。默认值是“found”。
Matchcase:指定搜索是否区分大小写。
Repeat:指定当第一次发现要查找的字符串时,搜索是否继续。当一个web页面中包含多个被查找的字符串时,此参数是非常有用的。合法的值有2个:yes,no。默认值是“yes”。
Report:指定在什么情况下,VuGen在执行日志中显示此函数的检查结果。合法的值有:success,failure,always。默认值是“always”。
Onfailure:此参数决定在函数检查失败后,Vuser是否中断。参数值是abort。如果指定了Onfailure=abort,当函数检查失败时,不论在运行时设置中的error-handling是什么,脚本都会中断。
如果没有指定Onfailure=abort,那么运行时设置中error-handling将会起作用。
支持的特性有:RightOf, LeftOf (不支持7.x及更高版本)。
RightOf:要查找的字符串右边的内容。
LeftOf:要查找的字符串左边的内容。
3、Searchstring:需要查找的字符串,格式为“What=stringxyz”。此搜索不区分大小写。
4、LAST:属性列表结束符。
返回值
整型。 成功时返回LR_PASS(0),失败时返回LR_FAIL
(1)。
说明
此函数的作用是在HTML页面中查找指定的字符串。
此函数只能在基于HTML录制的脚本中使用。当指定的HTML请求全部完成以后,开始执行搜索过程,比web_reg_find要慢。
web_find函数在C语言的脚本中已经被web_reg_find所替代,web_reg_find运行速度比较快,而且在HTML-based和URL-based的录制方式中都可以使用。在C语言脚本中,web_find是向后兼容的。Java和Visual
Basic脚本中不再支持它。
运行在HTTP模式下的WAP用户和运行在WSP回放模式下的WAP用户都不支持此函数。
web_reg_find
语法:
int web_reg_find (const char *attribute_list, LAST);
参数:
1、attribute_list:
通过Name=Value对来传递参数。例如“Text=string”。Text,TextPfx,TextSfx三个必须有一个出现。其他的属性是可选的。
a) Text:要搜索的字符串,字符串必须非空,以NULL结尾。可以使用text
flags自定义搜索字符串。
b) TextPfx:要搜索的字符串的直接前缀。
c) TextSfx:要搜索的字符串的直接后缀。
d) Search:搜索的范围。可选的值是:Headers 、Body(在请求体中搜索)、Noresource (仅仅在HTML请求体中搜索,不包括头和资源)、ALL
(在请求体、头和资源中搜索),默认值是“BODY”。
e) SaveCount:匹配的个数。
f) Fail:设置函数检查在什么状态下失败。
g) ID:日志文件中标识此函数的一个字符串。
h) RelFrameId:相关联的FrameId。注意:此参数在GUI级别的脚本中不受支持。
2、LAST:属性列表结束的标记符。
返回值
整型。成功时返回LR_PASS(0),失败时返回LR_FAIL(1)。
说明
web_reg_find属于注册函数,注册一个在web页面中搜索文本字符串的请求,在接下来的Action(例如:web_url)类函数中执行搜索。
通过查找期望的字符是否存在来验证是否返回了期望的页面。例如,通过查找“Welcome”来检查主页是否完全打开了。也可以查找“Error”检查浏览器是否发生错误。还可以使用此函数注册一个请求来统计特定字符串出现的次数。
如果检查失败,在接下来的Action类的函数中会报告错误。此函数仅仅注册请求,并不执行。函数的返回值只表明注册是否成功,并不表示检查的结果。
此函数不仅能够查找text,还能查找到围绕着text的strings。不要同时指定text和前缀后缀。
Fail,处理选项,可以是“Found或“NotFound”。默认是“NotFound”。
“Fail=Found” 指示当对应的字符找到时,函数检查失败。例如,查找单词“Error”,如果找到了,说名web请求没有成功,你想把函数检查设置为失败。
“Fail=NotFound”指示当对应的字符找不到时,函数检查失败。如果查找的是web请求成功时出现的字符串时,需要使用NotFound。
SaveCount参数指示保存到参数中的匹配的字符串的个数。使用这个属性,需要指定“SaveCount=param”。检查操作被执行后,param 的值是null结尾的数字类型的值。
如果指定了SaveCount,且没有使用Fail参数,检查不会失败,无论需要查找的字符串是否找到。通过检查SaveCount的值确定字符串是否被找到。如果param是0,说明没有找到对应的字符串。
如果同时指定了SaveCount和Fail,指定的错误处理选项和SaveCount协同工作。 handling option specified works together with the SaveCount. Thus,如果指定了SaveCount且指定了“Fail=NotFound” ,但是字符串被找到,SaveCount被赋值为字符串出现的次数,检查成功。如果字符串找不到,SaveCount被赋值为0,检查失败(注意,参数的0值只在运行时设置中Continue on error 选中时才有意义)。
此函数在HTML-based和URL-based的脚本中都可以使用。此函数是在所请求内容到达之前注册搜索请求的,所以当所请求内容一到达后就会执行搜索,产生的脚本比较高效。
Loadrunner中web_find和web_reg_find函数的使用与区别的更多相关文章
-
LoadRunner中的C Vuser函数
LoadRunner中的C Vuser函数 事务函数: lr_end_sub_transaction 标记子事务的结束以便进行性能分析. lr_end_transaction 标记事务的结束. ...
-
在Loadrunner中如何用system函数执行系统命令
前提: windows 系统 实现功能:用 LR 中的system函数执行系统命令 相关功能:在LR中利用C函数建立文件,写文件,读文件. 主要相关函数:sprintf/fopen/fgetc/fre ...
-
PHP中__autoload()与spl_autoload_register()函数的用法与区别
_autoload() 函数在PHP文档中的解释是试图使用尚未被定义的类时自动调用.通过调用此函数,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类. 如何理解这句话,我们首先看下面一个简单 ...
-
loadrunner中自定义查找并替换函数
globas.h中定义 //LoadRunner中没有直接的函数支持查找并替换字符串,因此可以封装一个lr_replace函数出来: // ------------------------------ ...
-
转:检查点(web_reg_find函数详解)
LR检查点 设置检查点的目的不只是为了验证我们的脚本没有错误,而更重要的是一个规范问题,如何使得测试结果更具有说服力,因此建议所有的测试脚本中都添加检查点设置 一.设置检查点的方法 1.将脚本切换到树 ...
-
在LoadRunner中查找和替换字符串
参考<Search & Replace function for LoadRunner>: http://ptfrontline.wordpress.com/2009/03/13/ ...
-
文本检查点web_reg_find和web_find两个函数的区别
LR脚本实战:文本检查点web_reg_find和web_find两个函数的区别 web_reg_find是先注册(register)后查找的:使用时将它放在请求语句的前面. 而web_find是 ...
-
LoadRunner中的函数
函数是LoadRunner提供给性能测试工程师的利器,有了它,性能测试工程师可以对脚本进行更为*的开发,更适应实际测试的需求,进一步扩展脚本的功能. LoadRunner函数的格式: 返回值 函数 ...
-
LoadRunner中的Web 函数列表
LoadRunner中的Web 函数列表 web test LoadRunner fuction_list D:\Program Files (x86)\Mercury Interactive\Mer ...
随机推荐
-
CSS3动画几个平时没注意的属性
一.timing-function: steps() 一开始在使用CSS3的时候并没有太注意这个timing-function,只是注意到自定义贝塞尔曲线. 1)一个项目中的实例 先来看看左边加了st ...
-
TCP的阻塞和重传机制
TCP的阻塞和重传机制 网络拥堵 现在网络上大部分的网络请求都是以TCP的方式进行传输的了.网络链路是固定的,各种链路情况也是不一样的.网络拥堵一直是TCP协议设计和使用的时候尽力要避免的.比如,从T ...
-
angular源码分析:angular中脏活累活的承担者之$interpolate
一.首先抛出两个问题 问题一:在angular中我们绑定数据最基本的方式是用两个大括号将$scope的变量包裹起来,那么如果想将大括号换成其他什么符号,比如换成[{与}],可不可以呢,如果可以在哪里配 ...
-
恢复SQLSERVER被误删除的数据(转——收藏)
恢复SQLSERVER被误删除的数据 摘自:http://www.cnblogs.com/lyhabc/p/3683147.html 曾经想实现Log Explorer for SQL Server的 ...
-
JavaScript学习笔记之BOM
BOM的核心对象是window,它既表示浏览器窗口以及页面可见区域,同时也是ECMAScript中的Globe对象,所有的全局变量和函数都是它的属性,并且所有的原声函数以及其他函数也都存在于它的命名空 ...
-
discuz分类信息地区联动菜单字段
1 = 河南省 1.1 = 郑州市 1.1.1 = 中原区 1.1.2 = 二七区 1.1.3 = 管城区 1.1.4 = 金水区 1.1.5 = 上街区 1.1.6 = 惠济区 1.1.7 = 巩义 ...
-
css阴影
文字阴影:text-shadow:[颜色 x轴 y轴 模糊半径],[颜色 x轴 y轴 模糊半径]... 区域阴影:box-shadow:[颜色 x轴 y轴 模糊半径],[颜色 x轴 y轴 模糊半径]. ...
-
2014百度之星第四题Labyrinth(DP)
Labyrinth Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
-
c#接口使用详解
c#接口使用详解 c#中接口隐式与显示实现 c#中接口可以隐式实现.显示实现,隐式实现更常使用.显示实现较少使用 其区别在于 显示实现避免接口函数签名冲突 显示实现只可以以接口形式调用 显示实现其子类 ...
-
Spring Security 入门(1-4-1)Spring Security - 认证过程
理解时可结合一下这位老兄的文章:http://www.importnew.com/20612.html 1.Spring Security的认证过程 1.1.登录过程 - 如果用户直接访问登录页面 用 ...