LoadRunner检查点函数

来源:互联网 发布:淘宝直通车卡位软件 编辑:程序博客网 时间:2024/05/22 13:12
web_reg_find:从下一个回应的HTML页面中查找指定的文本字符串
web_find:从HTML页面中查找指定的文本字符串
web_image_check:从HTML页面中查找指定的图片
web_global_verfication:从所有后续HTTP交互中查找指定的文本字符串

web_reg_find: 是注册型函数,一般放在请求之前,比如放在web_submit_from,  Web_castom_request();web_image();web_link();web_submit_data();web_submit_form();web_url()
函数祥解:
    web_reg_find("Fail=NotFound",//表示 如果没有找到,检查点函数出错
        "Search=Body",//搜索 的位置
        "SaveCount=logcheck", //将结果保存到的参数
        "Text=test",//要查找的内容文本或者图片内容

        LAST);



web_find函数:

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

web_find("web_find", //定义该查找函数的名称
%vR`}1}0 "RightOf=a", //定义查找字符的右边界

"LeftOf=b", //定义查找字符的左边界

"What=name", //定义查找内容

LAST);

使用该函数注意以下事项:

1、 位置

该函数在页面内容显示出来以后,在页面中进行查找,所以只能写在要查找内容之后

2、 录制模式

该函数只能在基于HTML模式录制的脚本中进行查找

3、 必须启用内容检查选项

在runtime setting->Preferences里面,把Enable image andtext check选中,否则不执行该查找函数

4、 在VB和JAVA语法中不支持该函数

该函数有以下一个缺点:

1、 执行效率较低

2、 不返回查找结果情况,如想在执行该函数后根据查找结果做进一步操作时,没有返回值可以依据

例如:

在页面中查找“登录成功”的字符串,如果找到该字符串在日志中输出“登录成功”,如果找不到该字符串,则在日志中输出“登录失败”,此时使用该函数没有依据来做此判断,但使用web_reg_find()函数,使用它其中的SaveCount可以进行判断,具体方法我们下面介绍。

Action()
{

    web_add_cookie("edB_sid=k1AwPp; DOMAIN=127.0.0.1");

    web_add_cookie("edB_onlineusernum=1; DOMAIN=127.0.0.1");

    web_url("index.php",
        "URL=http://127.0.0.1/discuz/index.php",
        "TargetFrame=",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=",
        "Snapshot=t1.inf",
        "Mode=HTML",
        EXTRARES,
        "Url=images/default/bodybg.gif", ENDITEM,
        "Url=images/default/header.gif", ENDITEM,
        "Url=images/default/mtabbg.gif", ENDITEM,
        "Url=images/default/pm_ntc.gif", ENDITEM,
        "Url=images/default/forum.gif", ENDITEM,
        "Url=images/default/icon_nav.gif", ENDITEM,
        "Url=images/default/btn_block.gif", ENDITEM,
        "Url=images/default/newtopic.gif", ENDITEM,
        "Url=images/default/newclose.gif", ENDITEM,
        "Url=images/default/loading.gif", ENDITEM,
        "Url=logging.php?action=login&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login", ENDITEM,
        "Url=forumdata/cache/md5.js?3HI", ENDITEM,
        "Url=images/default/right_big.gif", ENDITEM,
        "Url=images/default/newarow.gif", ENDITEM,
        "Url=images/default/check_error.gif", ENDITEM,
        LAST);

    lr_think_time(8);
    //插入检查点函数
    //利用菜单插入
    
    web_reg_find("Fail=NotFound",
        "Search=Body",
        "SaveCount=logcheck",
        "Text=test",
        LAST);
    lr_eval_string("{logcheck}");
    //web_find()
    //判断
    if (atoi(lr_eval_string("{logcheck}")) > 0)
    { //判断如果logcheck字符串出现次数大于0

        lr_output_message("Log on successful.");
    }//在日志中输出Log on successful

    else
    { //如果出现次数小于等于0

        lr_error_message("Log on failed"); //在日志中输出Log on failed

    }
    web_submit_data("logging.php",
        "Action=http://127.0.0.1/discuz/logging.php?action=login&loginsubmit=yes&floatlogin=yes&inajax=1",
        "Method=POST",
        "TargetFrame=",
        "RecContentType=application/xml",
        "Referer=http://127.0.0.1/discuz/index.php",
        "Snapshot=t2.inf",
        "Mode=HTML",
        ITEMDATA,
        "Name=formhash", "Value=7fd7f5f1", ENDITEM,
        "Name=referer", "Value=http://127.0.0.1/discuz/index.php", ENDITEM,
        "Name=loginfield", "Value=username", ENDITEM,
        "Name=username", "Value=test", ENDITEM,
        "Name=password", "Value=hejian", ENDITEM,
        "Name=questionid", "Value=0", ENDITEM,
        "Name=answer", "Value=", ENDITEM,
        LAST);

    web_url("index.php_2",
        "URL=http://127.0.0.1/discuz/index.php",
        "TargetFrame=",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=",
        "Snapshot=t3.inf",
        "Mode=HTML",
        EXTRARES,
        "Url=images/default/bodybg.gif", ENDITEM,
        "Url=images/default/header.gif", ENDITEM,
        "Url=images/default/mtabbg.gif", ENDITEM,
        "Url=images/default/pm_ntc.gif", ENDITEM,
        "Url=images/default/forum.gif", ENDITEM,
        "Url=images/default/notice_newpm.gif", ENDITEM,
        "Url=images/default/icon_nav.gif", ENDITEM,
        "Url=images/default/newtopic.gif", ENDITEM,
        "Url=images/default/btn_block.gif", ENDITEM,
        "Url=pm.php?checknewpm=0.6369404151642994&inajax=1&ajaxtarget=myprompt_check", ENDITEM,
        LAST);

    return 0;
}

总结:

一.web_find()使用时必须开启内容检查选项,在Runn-time Setting设置中,Preferences中勾选 Enable image and text check; web_reg_find()函数没有此限制
二.web_find()只能只用在基于html模式录制的脚本中,web_reg_find()没有此限制
三.web_find()是在返回的页面中进行内容查找,web_reg_find()是在缓存中进行查找,故在执行效率上没有web_reg_find()函数高。
四.web_reg_find的优先级要远远高于web_find(),所以web_fiind()已经属于向后兼容的功能,不在推荐使用:
简单来说,web_reg_find()函数比web_find()底层


相关问题:

问题一:
    录制脚本后添加了这个web_reg_find()函数,查找页面上某段字符串,reply的时候没有问题,但是在并发测试的时候就会有好多事务报错说找不到这个字符串,但是为什么reply的时候没有问题呢?还有就是,如果我把应用部署在处理速度较快的机子上,测试时就没有出现这个问题,这跟服务器响应速度有关?不太懂
解答:
    web_reg_find()函数,不是查找页面上某段字符串,而是在缓存中,web_find才是在页面中查找。web_reg_find的效率要高一些。
但是在并发较大的时候,服务器还没来得返回你请求的字符串有可能loadrunner已经进行下一步操作了,所以找不到。
把应用部署在处理速度较快的机子上,测试时就没有出现这个问题,正是因为这个原因。


此相关问题可以查看以下关联文章 :

http://www.cnblogs.com/samfish/archive/2010/06/11/1756049.html



原创粉丝点击