zoukankan      html  css  js  c++  java
  • Loadrunner--web_find和web_reg_find的用法和区别

    一、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已经属于向后兼容的功能,不在推荐使用了。
  • 相关阅读:
    addEventListener事件委托
    ES6的解构赋值
    JavaScript 中最​​重要的保留字
    HTML 5 Web 存储
    Node.js 里的 process.nextTick(),简单理解
    实现多层DIV叠加的js事件穿透
    touch事件中的touches、targetTouches和changedTouches详解
    Promise.all( ) 的使用
    js 中的五种迭代方法
    迭代
  • 原文地址:https://www.cnblogs.com/wxinyu/p/7687968.html
Copyright © 2011-2022 走看看