zoukankan      html  css  js  c++  java
  • loadrunner12-错误 -26366: 找不到 web_reg_find 的“Text=19728.00”

    转:检查点(web_reg_find函数详解)

    LR检查点

      设置检查点的目的不只是为了验证我们的脚本没有错误,而更重要的是一个规范问题,如何使得测试结果更具有说服力,因此建议所有的测试脚本中都添加检查点设置

     一、设置检查点的方法

    1.将脚本切换到树结构,在page view页面上找到你要check的文本内容, 并执行鼠标右键,选择Add a text check.

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

    web_reg_find("Text/IC=Payment Details", "SaveCount=para_count", LAST);

    这里是要运行的页面脚本

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

        lr_output_message("Pass!");

     else

      lr_output_message("Failed!");

    注意:

    l   “Payment Details” 为你要检查的文本;

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

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

    l   这里的测试结果均以200状态码返回,其失败的结果将在分析报告中进行分类标识。

    //atoi()函数的作用是将一个ASCII字符串转换为整型

    //lr_eval_string()函数作用是取得参数值,将字符串变量中的参数值替换为当前的参数值并将这个字符串返回

    3. 光标停留在要插入函数的位置,在INSERT菜单中,选择new step,在列表中选择或查找要插入的函数,根据提示填写必要的参数;

    二、设置检查点时要注意(主要针对web_find()函数的相关设置)

    1.在使用检查点的时候我们还需要注意一些问题,通常我们都要设置一些中文检查点,但是LR默认不支持,如果你设置了中文检查点而报错,那你就应该注意了,在录制脚本的时候选中设置的UTF-8选择,去掉勾,如下图所示:

    2.使用文本检查点时,由于检查点功能会耗费一定的资源,因此LoadRunner默认关闭了对文本及图像的检查。要想开启检查功能,必须修改运行时的配置Run-time Setting,需要设置启用图片和文本检查点,如下图所示:

    系统默认是不勾选该选项的。

    三、检查点脚本运行中经常出现的错误

    1.错误代码Error -27257: Pending web_reg_save_param/reg_find/create_html_param[_ex] request(s) detected and reset at the end of iteration number 1

    原因:web_reg_find的位置错了, 你将它放在某个action的最后,它的后面是 return 0, 所以出错了

    解决方法:web_reg_find位置放错了,应该放到请求页面前面。

    2.错误代码:Action.c(27): Error -26366: "Text=ABC" not found for web_reg_find  [MsgId: MERR-26366]

    出现该问题时,需要检查web_reg_find是否放在查找内容的前面。

    注:一定注意函数只放在要检查的URL前面,不要随便再往前面放置。

    3. 错误代码: Action.c(22): Error -27191: "web_image_check" failed (0 occurrence(s) found.[MsgId: MERR-27191]

    如果是web_find(),检查函数的位置是否在要查找内容的后面;如果是web_image_check(),查看该图片的源代码,看其是否是这个页面上的图片,很可能是图片选择错误,即所选图片不属于该页面。

    四、相关函数介绍

    1.         web_find()函数

    web find("web_find","RighOf=a","LeftOf=b","What=name",LAST);

    参数解释:"web_find"定义该查找函数的名称;“LeftOf”和“RighOf=”用来定义查找字符的左右边界;“What=”定义查找内容;

    例如上述参数举例中的意思就是在页面中查找左边界为b,右边界为a,内容为name的信息;

    使用该函数注意事项:该函数是在查找页面中的内容,所以要放在要查找的内容的后面;该函数只能在基于HTML模式录制的脚本中进行查找

    2.         web_reg_find()函数

    web_reg_find("Search=Body","SaveCount=ddd","Test=aaa",LAST);

    参数解释: Search用来定义查找范围,SaveCount定义查找计数变量名称,该参数可以记录在缓存中查找内容出现的次数,可以使用该值,来判断要查找的内容是否被找到;

    例如上述参数举例中的意思就是Body中查找内容为aaa的信息,并将出现次数记录在变量ddd中;

    使用该函数注意事项:该函数是在缓存中查找相应的内容,所以要放在查找内容之前;通常情况下写在如下六个函数之 前:Web_castom_request(); web_image(); web_link(); web_submit_data(); web_submit_form(); web_url();

    使用技巧:在该函数的参数中有个“SaveCount”,该参数可以记录在缓存中查找内容出现的次数,我们可以使用该值,来判断要查找的内容是否被找到。

    3.         web_image_check()函数

    web_image_check("web_image_check","Alt=","Src=",LAST);

    参数解释:“Alt”和“Src”的值直接取该图片在网页源代码中相应参数的值;

    经过测试,该函数用到查找内容前面或后面,都不影响查找结果。

    五. web_find与web_reg_find函数比较

    • l  这两个函数函数类型不同,WEB_FIND是普通函数,WEB_REG_FIND是注册函数;
    • l  WEB_FIND使用时必须开启内容检查选项,而WEB_REG_FIND则不没有此限制;
    • l  WEB_FIND只能用在基于HTML模式录制的脚本中,而WEB_REG_FIND没有此限制;
    • l  WEB_FIND是在返回的页面中进行内容查找,WEB_REG_FIND是在缓存中进行查找;
    • l  WEB_FIND在执行效率上不如WEB_REG_FIND;
    • l  WEB_FIND使用时放在检查内容后面;而WEB_REG_FIND使用时放在检查内容前面。

    检查点一般是在什么情况下会使用
      1.验证假设登录是否成功 
      2.验证页面跳转是否正确

    附录:实例详解

    代码一:

    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, 并且停止执行下去。反之,则一直执行下去。

    代码四:

     在LoadRunner中,大小写是敏感的,甚至在被检验的值中。所以上面的脚本会因为大写字母的原因,不会识别“Welcome”的。所以Steve Cheney 建议使用“IC”忽略大小写的文字标志:
     web_reg_find("Text/IC=Welcome",LAST);

  • 相关阅读:
    nullnullConnecting with WiFi Direct 与WiFi直接连接
    nullnullUsing WiFi Direct for Service Discovery 直接使用WiFi服务发现
    nullnullSetting Up the Loader 设置装载机
    nullnullDefining and Launching the Query 定义和启动查询
    nullnullHandling the Results 处理结果
    装置输出喷泉装置(贪心问题)
    数据状态什么是事务?
    停止方法iOS CGD 任务开始与结束
    盘文件云存储——金山快盘
    函数标识符解决jQuery与其他库冲突的方法
  • 原文地址:https://www.cnblogs.com/wxh04/p/8795725.html
Copyright © 2011-2022 走看看