Loadrunner中web_find和web_reg_find函数的使用与区别
- 格式:doc
- 大小:42.00 KB
- 文档页数:6
今天我来总结一下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 sampleweb_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 inweb_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 resultif (atoi(lr_eval_string("{Welcome_Count}")) > 0){ //判断如果Welcome字符串出现次数大于0lr_output_message("Log on successful."); }//在日志中输出Log on successfulelse{ //如果出现次数小于等于lr_error_message("Log on failed"); //在日志中输出Log on failedreturn(0); }我觉得这个方法非常有用,我们可以举一反三,应用到我们实际的项目中三、插入检查点函数的方法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)。