一、web_find()函数

该函数的作用是“在页面中查找相应的内容”,常用参数及含义如下:

web_find("web_find",
//定义该查找函数的名称

"RightOf=a",
//定义查找字符的右边界
"LeftOf=b",
//定义查找字符的左边界
"What=name",
//定义查找内容
LAST);
使用该函数注意以下事项:
 
1、
位置
该函数在页面内容显示出来以后,在页面中进行查找,所以只能写在要查找内容之后
 
2、
录制模式
该函数只能在基于HTML模式录制的脚本中进行查找
3、
必须启用内容检查选项

在runtime
setting->Preferences里面,把Enable image and text check选中,否则不执行该查找函数
4、
在VB和JAVA语法中不支持该函数

该函数有以下一个缺点
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 theWebTours
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}")) > 0){ //判断如果Welcome字符串出现次数大于0
lr_output_message("Log
on successful."); }//在日志中输出Log on successful
else{
//如果出现次数小于等于
lr_error_message("Log
on failed"); //在日志中输出Log on failed
return(0);
}
我觉得这个方法非常有用,我们可以举一反三,应用到我们实际的项目中
三、插入函数的方法
 
1、
手工写入,在需要插入函数的位置手工写入该函数
2、
光标停留在要插入函数的位置,在INSERT菜单中,选择new step,在列表中选择或查找要插入的函数,根据提示填写必要的参数
3、
在tree view模式下,在树状菜单中选中要插入函数的位置,右键,选择insert after或insert before,根据提示填写必要的参数
四、插入的步骤

1.
将脚本切换到树结构,在page view页面上找到你要check的文本内容, 并执行鼠标邮件,选择copy selection.

2.
将脚本切换回代码界面, 在光标闪烁的上行,添加如下的代码:

备注:光标闪烁的上行:
若光标闪烁行为第10行,那光标闪烁的上行为第9行。

添加的代码根据你检查的方式不同而不同,
你可以选择其中之一即可。

代码一:

web_reg_find("Text=Payment
Details",LAST);

代码思路:

1."Payment
Details" 为你要检查的文本;

2.
脚本执行到此处,若在页面上找到了这几个字符串,那脚本继续执行下去;若没有找到,脚本将在此报错并且结束。

代码二:

web_reg_find("Text=Payment
Details", "SaveCount=para_count", LAST); //check 的函数

web_submit_form("reservations.pl_2",
//要check的页面的录制时的代码

"Snapshot=t22.inf",

ITEMDATA,

"Name=outboundFlight",
"Value=003;0;06/23/2007", ENDITEM,

"Name=reserveFlights.x",
"Value=61", ENDITEM,

"Name=reserveFlights.y",
"Value=2", ENDITEM,

LAST);

if
(atoi(lr_eval_string("{para_count}"))>0) //验证是否找到了页面上的要检查的字符串

lr_output_message("we
find the string!");

else

lr_output_message("sorry,don't
find the string!");

代码思路:

1."Payment
Details" 为你要检查的文本;

2.
脚本执行到此处,不管页面上是否存在你要检查的字符串,脚本都不会报错,而是执行下去。

3.
此段代码将找到的你要检查的字符串的个数,存为一个参数。 然后在页面代码的后面,通过检查这个参数的值是否大于0,来判断是否找到了你所要检查的字符串。

代码三:

A.
web_reg_find("Text=Payment Detdils", "Fail=NotFound",LAST);或者

B.
web_reg_find("Text=Payment Detdils", "Fail=Found",LAST);

代码思路:

1."Payment
Details" 为你要检查的文本;

2.
若是A代码:脚本执行到此处,若没有找到check的字符串,脚本将FAIL, 并且停止执行下去。反之,则一直执行下去。

3.
若是B代码:脚本执行到此处,若找到check的字符串,脚本将FAIL, 并且停止执行下去。反之,则一直执行下去。

五、总结
1、
这两个函数函数类型不同,WEB_FIND是普通函数,WEB_REG_FIND是注册函数

 
2、
WEB_FIND使用时必须开启内容检查选项,而WEB_REG_FIND则不没有此限制
 
3、
WEB_FIND只能只用在基于HTML模式录制的脚本中,而WEB_REG_FIND没有此限制
4、
WEB_FIND是在返回的页面中进行内容查找,WEB_REG_FIND是在缓存中进行查找
 
5、
WEB_FIND在执行效率上不如WEB_REG_FIND
说白了,用web_reg_find
的优先级要远远高于web_find,所以 web_find已经属于向后兼容的功能,不在推荐使用了。

Loadrunner--web_find和web_reg_find的用法和区别的更多相关文章

  1. web_find和web_reg_find的用法和区别

    一.web_find()函数 该函数的作用是“在页面中查找相应的内容”,常用参数及含义如下: web_find("web_find", //定义该查找函数的名称 "Rig ...

  2. lr中检查点的使用web_find()和web_reg_find()的区别

    web_find()和web_reg_find()的区别:1. 这两个函数函数类型不同,web_find()是普通函数,web_reg_find()是注册函数;2. VU run time设置中的 “ ...

  3. set和enum类型的用法和区别

    mysql中的set和enum类型的用法和区别 mysql中的enum和set其实都是string类型的而且只能在指定的集合里取值, 不同的是set可以取多个值,enum只能取一个值.   1 2 3 ...

  4. OC #import和@class的用法和区别

    OC #import和@class的用法和区别 import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑, ...

  5. HashMap、HashTable、LinkedHashMap和TreeMap用法和区别

    Java为数据结构中的映射定义了一个接口java.util.Map,它有四个实现类,分别是HashMap.HashTable.LinkedHashMap和TreeMap.本节实例主要介绍这4中实例的用 ...

  6. 脚本引用中的defer和async的用法和区别

    之前的博客漫谈前端优化中的引用资源优化曾经提到过脚本引用异步设置defer.async,没有细说,这里展开一下,谈谈它们的作用和区别,先上张图来个针对没用过的小伙伴有个初始印象: 是的,就是在页面脚本 ...

  7. spring 后置处理器BeanFactoryPostProcessor和BeanPostProcessor的用法和区别

    主要区别就是: BeanFactoryPostProcessor可以修改BEAN的配置信息而BeanPostProcessor不能,下面举个例子说明 BEAN类: package com.spring ...

  8. LoadRunner 思考时间与事务响应时间的区别与关系

    LoadRunner 思考时间与事务响应时间的区别与关系   思考时间lr_think_time 就是一个事务要开始时思考的时间;比如 你要点击一个 登录按钮 我们都要点击这个按钮要先思考下 就是人为 ...

  9. $.extend()和$.fn.extend()用法和区别

    $.extend()和$.fn.extend()用法和区别: 在自己制作插件的时候会经常用到$.extend()和$.fn.extend()两个函数,无论从外观还是作用都非常的类似,但是实际上它们的区 ...

随机推荐

  1. valgrind的说明使用和原理

    编译 #gcc -g -o test test.c 内存检查#valgrind --tool=memcheck --leak-check=yes --show-reachable=yes ./test ...

  2. shell学习四十九天----进程建立

    进程 前言:进程指的是运行中程序的一个实例.新进程由fork()与execve()等系统调用所起始,然后运行,知道他们下达exit()系统调用为止. linux系统都支持多进程.尽管计算机看起来像是一 ...

  3. Oracle的表空间和sqlplus

    1.  表空间的概念 曾经接触过的数据库都没有听到过表空间这个词,在前一段时间看到Oracle数据库的时候发现表空间无处不在. 所以表空间在Oracle数据库中应该是一个非经常常使用而且非常重要的概念 ...

  4. 第8章7节《MonkeyRunner源代码剖析》MonkeyRunner启动执行过程-小结

    最后我们对MonkeyRunner启动的过程做一个总结,当然,当中也包括启动Monkey,尽管它不属于启动过程的一部分: monkeyrunner这个shell脚本会先设置一些执行环境的系统属性保存到 ...

  5. 搜寻Linux软件实用指南

    搜寻Linux软件实用指南  对于初学者来说,仅仅安装好Linux系统还是不够的,还需要安装大量的应用软件.许多下载网站都提供了诸如装机必备软件的下载,分门别类提供经典的工具软件下载.本文主要针对初学 ...

  6. inflater-布局转化实现

    通俗的说,inflate就相当于将一个xml中定义的布局找出来.因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件 ...

  7. 新技能 get —— 如何校验 md5(windows)

    我们在某资源网站上下载完成指定文件后,尤其是一些下载所需较高时长的大型文件,如何检验下载的文件是否完好,也即如何保证和原始网站上的资源一样.此时就要用到检验码的机制,一般文件的下载界面,通常都会给出此 ...

  8. 团队作业-Beta冲刺(3)

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 这个作业要求在哪里 https://edu.cnblo ...

  9. CISP/CISA 每日一题 四

    CISA 每日一题(答) 连续在线审计技术: 1.系统控制审计检查文件和内嵌审计模型(SCARF/EAM):非常复杂,适用于正常处理不能被中断:通过在组织的主机应用系统中内嵌经特别编写的审计软件,使审 ...

  10. C# Unity依赖注入利用Attribute实现AOP功能

    使用场景? 很多时候, 我们定义一个功能, 当我们要对这个功能进行扩展的时候, 按照常规的思路, 我们一般都是利用OOP的思想, 在原有的功能上进行扩展. 那么有没有一种东西, 可以实现当我们需要扩展 ...