首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

web_find跟web_reg_find

2012-10-25 
web_find和web_reg_find在写脚本插入检查点时候,遇见了web_find和web_reg_find的问题,我用web_find 运行正

web_find和web_reg_find
在写脚本插入检查点时候,遇见了web_find和web_reg_find的问题,我用web_find 运行正常,而用web_reg_find就出错了。于是查找了关于这两者的区别:

以下是转海龙老师的:
web_reg_find() 不能通过它的返回值来作为事务的判断条件,因为web_reg_find()的返回值0和1表示web_reg_find()是否注册成功(web_reg_find是注册类型函数,它本身并不执行),并不代表查找的内容是否存在,也就是说无论查找的文本内容是否存在,都返回0,(和 web_find的返回值意义就不同了)。

利用web_reg_find创建的参数SaveCount ,作为判断条件就可以了。

web_find() (帮助不太推荐使用web_find而是推荐使用web_reg_find)要写在请求后,也就是要现在事务内了。这样通过事务统计出来的响应时间就(包括了web_find()这个函数的执行时间)不真实了。而web_reg_find()是写在请求前面的。如果能用web_reg_find()来作为事务结束条件,那就是最好的。

事务时间等于Duration-Wasted Time,web_reg_find执行的时间Loadrunner会自动减掉的。



以下内容来源:http://hi.baidu.com/dcwang/blog/item/6f45aa188df4bd0e34fa412d.html

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的脚本中都可以使用。此函数是在所请求内容到达之前注册搜索请求的,所以当所请求内容一到达后就会执行搜索,产生的脚本比较高效。

web_reg_find和 web_find的不同之处是web_reg_find是先注册,后查找;而web_find是查找前面的请求结果。

web_find和web_reg_find函数两者是有一些差别的:

  (1)web_reg_find先注册的优势是脚本能够一边接收Server的数据缓冲,一边进行查找,提高了查找的效率。

  (2)web_reg_find的参数与web_find并不完全一样,其中有个参数叫做 SaveCount,它能够记录查找匹配的次数。而web_find的机制是一旦查找匹配成功,就立即返回,并不继续查找和记录匹配次数。

  (3)VU run time设置中的 “enable image and text check”对 web_find有效,而对web_reg_find无效。

热点排行