LR脚本实战:文本检查点web_reg_find和web_find两个函数的区别

 

web_reg_find是先注册(register)后查找的;使用时将它放在请求语句的前面。 而web_find是查找前面的请求结果;使用时将它放在请求语句的后面。
另二者的参数也完成不一样的,web_reg_find参数中SaveCount记录查找匹配的次数, web_find的机制是一旦查找匹配成功就立即返回,并不继续查找和记录匹配次数
再者Run-time设置中的“enable image and text check”对web_find有效,而对web_reg_find无效。 注意:web_find不支持URL模式下录制的脚本。
执行效率: web_reg_find可以直接在内存里面检查所指定对象是否存在;而web_find是文本检查点,需要对应页面完全显示出来之后,才会执行检查。概言之,使用web_reg_find不用启用文本检查点功能;使用web_find就一定要启用文本检查点功能,否则检查点无效。 很显然,前者比后者执行效率要高,这也是LR要不建议使用后者的原因。

以下是转海龙老师的 而web_reg_find()就不能通过它的返回值来作为事务的判断条件,因为web_reg_find()的返回值0和1表示web_reg_find()是否注册成功(web_reg_find是注册类型函数,它本身并不执行),并不代表查找的内容是否存在,也就是说无论查找的文本内容是否存在,都返回0,(和web_find的返回值意义就不同了)。
我想问的是有什么方法用web_reg_find()来作为事务的判断条件? 利用web_reg_find创建的参数SaveCount ,作为判断条件就可以了(如SaveCount >0)
web_find()(帮助不太推荐使用web_find而是推荐使用web_reg_find)要写在请求后,也就是要在事务内了。这样通过事务统计出来的响应时间就(包括了web_find()这个函数的执行时间)不真实了。而web_reg_find()是写在请求前面的。如果能用web_reg_find()来作为事务结束条件,那就是最好的. 事务时间等于Duration-Wasted Time,web_reg_find执行的时间Loadrunner会自动减掉的
另,LR自身已经提供了关于Page title的检查点的设置。路径: Recording setting >Advanced.
 
脚本示例:

同样的script, 如果添加web_reg_find,事务运行结果失败:

Action.c(50): Error -26366: "Text=Dashboard" not found for web_reg_find          [MsgId: MERR-26366]

Action.c(50): web_submit_form("wp-login.php_2") highest severity level was "ERROR", 39882 body bytes, 3207 header bytes, 12 chunking overhead bytes          [MsgId: MMSG-26387]

Action.c(50): Notify: Transaction "Login_WordPress" ended with "Fail" status (Duration: 5.9267 Wasted Time: 0.0000).

Ending action Action.

Ending iteration 2.
 
而如果没有同,整个事务,包括 action运行成功:
 

Action.c(110): web_url("index-extra.php_5") was successful, 1047 body bytes, 2682 header bytes, 12 chunking overhead bytes          [MsgId: MMSG-26385]

Action.c(124): Log on successfully

Ending action Action.

Ending iteration 2.

 
 
Action()
{
 
int status; //定义变量,用于判断登陆是否成功
//    web_add_cookie("rtime=1; DOMAIN=bjdns2.cncmax.cn");
//
// web_add_cookie("ltime=1303876351121; DOMAIN=bjdns2.cncmax.cn");
//
// web_add_cookie("cnzz_eid=64563578-1302487037-http://bjdns2.cncmax.cn:8080/?HOST=home.beyondsoft.com&R=/& DOMAIN=bjdns2.cncmax.cn");
//
// web_add_cookie("JSESSIONID=E73D3BF7B18442F72B93F5EF37B5E545; DOMAIN=bjdns2.cncmax.cn");
 
web_url("bjdns2.cncmax.cn:8080",
"URL=http://bjdns2.cncmax.cn:8080/?HOST=wpad.beyondsoft.com&R=/wpad.dat&",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
 
// web_add_cookie("wp-settings-time-1=1304042778; DOMAIN=demo.opensourcecms.com");
//
// web_add_cookie("wordpress_test_cookie=WP+Cookie+check; DOMAIN=demo.opensourcecms.com");
//
// web_add_cookie("wordpress_logged_in_613541581fd3dd54ee5153849996d0f6=admin|1304215578|8148fb498981bf15c2f239b9d3dbdf5d; DOMAIN=demo.opensourcecms.com");
//
// web_add_cookie("wordpress_613541581fd3dd54ee5153849996d0f6=admin|1304215578|616ad0d48cfd28158b012254e00fe732; DOMAIN=demo.opensourcecms.com");
//
web_url("wp-login.php",
"URL=http://demo.opensourcecms.com/wordpress/wp-login.php",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
EXTRARES,
"URL=wp-admin/images/button-grad.png", ENDITEM,
"URL=wp-admin/images/white-grad.png", ENDITEM,
"URL=wp-admin/images/logo-login.gif", ENDITEM,
LAST);
 
    
 
lr_start_transaction("Login_WordPress");
 
// 注意,该函数应该插入到提交时会出现该字段的地方之前。
  //web_reg_find("Text=Dashboard",
  // "Search=Body",
  // LAST);
web_submit_form("wp-login.php_2",
"Snapshot=t3.inf",
ITEMDATA,
"Name=log", "Value={UserName}", ENDITEM,
"Name=pwd", "Value={Password}", ENDITEM,
"Name=rememberme", "Value=<OFF>", ENDITEM,
"Name=wp-submit", "Value=Log In", ENDITEM,
EXTRARES,
"URL=wp-admin/images/wp-logo.png?ver=20100531", "Referer=http://demo.opensourcecms.com/wordpress/wp-admin/", ENDITEM,
"URL=wp-admin/images/fav-arrow.gif?ver=20100531", "Referer=http://demo.opensourcecms.com/wordpress/wp-admin/", ENDITEM,
"URL=wp-admin/images/menu.png?ver=20100531", "Referer=http://demo.opensourcecms.com/wordpress/wp-admin/", ENDITEM,
"URL=wp-admin/images/menu-bits.gif?ver=20100610", "Referer=http://demo.opensourcecms.com/wordpress/wp-admin/", ENDITEM,
"URL=wp-admin/images/menu-dark.gif", "Referer=http://demo.opensourcecms.com/wordpress/wp-admin/", ENDITEM,
"URL=wp-admin/images/menu-arrows.gif", "Referer=http://demo.opensourcecms.com/wordpress/wp-admin/", ENDITEM,
"URL=wp-admin/images/screen-options-toggle.gif?ver=20100531", "Referer=http://demo.opensourcecms.com/wordpress/wp-admin/", ENDITEM,
"URL=wp-admin/images/icons32.png?ver=20100531", "Referer=http://demo.opensourcecms.com/wordpress/wp-admin/", ENDITEM,
"URL=wp-admin/images/gray-grad.png", "Referer=http://demo.opensourcecms.com/wordpress/wp-admin/", ENDITEM,
"URL=wp-includes/js/thickbox/loadingAnimation.gif", "Referer=http://demo.opensourcecms.com/wordpress/wp-admin/", ENDITEM,
"URL=wp-admin/images/fade-butt.png", "Referer=http://demo.opensourcecms.com/wordpress/wp-admin/", ENDITEM,
LAST);
 
 
lr_end_transaction("Login_WordPress", LR_AUTO);
 
web_url("index-extra.php",
"URL=http://demo.opensourcecms.com/wordpress/wp-admin/index-extra.php?jax=dashboard_incoming_links",
"Resource=0",
"RecContentType=text/html",
"Referer=http://demo.opensourcecms.com/wordpress/wp-admin/",
"Snapshot=t4.inf",
"Mode=HTML",
LAST);
 
web_url("index-extra.php_2",
"URL=http://demo.opensourcecms.com/wordpress/wp-admin/index-extra.php?jax=dashboard_primary",
"Resource=0",
"RecContentType=text/html",
"Referer=http://demo.opensourcecms.com/wordpress/wp-admin/",
"Snapshot=t5.inf",
"Mode=HTML",
LAST);
 
web_url("index-extra.php_3",
"URL=http://demo.opensourcecms.com/wordpress/wp-admin/index-extra.php?jax=dashboard_secondary",
"Resource=0",
"RecContentType=text/html",
"Referer=http://demo.opensourcecms.com/wordpress/wp-admin/",
"Snapshot=t6.inf",
"Mode=HTML",
LAST);
 
web_url("index-extra.php_4",
"URL=http://demo.opensourcecms.com/wordpress/wp-admin/index-extra.php?jax=dashboard_plugins",
"Resource=0",
"RecContentType=text/html",
"Referer=http://demo.opensourcecms.com/wordpress/wp-admin/",
"Snapshot=t7.inf",
"Mode=HTML",
LAST);
 
web_url("index-extra.php_5",
"URL=http://demo.opensourcecms.com/wordpress/wp-admin/index-extra.php?jax=dashboard_quick_press",
"Resource=0",
"RecContentType=text/html",
"Referer=http://demo.opensourcecms.com/wordpress/wp-admin/",
"Snapshot=t8.inf",
"Mode=HTML",
LAST);
 
if(status == LR_FAIL) {
lr_error_message("Log on failed");
return -1;
}
else{
lr_output_message("Log on successfully");
return 0;
}
 
}

文本检查点web_reg_find和web_find两个函数的区别的更多相关文章

  1. loadrunner:文本检查点web_reg_find和web_find两个函数的区别

    web_reg_find是先注册(register)后查找的:使用时将它放在请求语句的前面. 而web_find是查找前面的请求结果:使用时将它放在请求语句的后面. 另二者的参数也完成不一样的,web ...

  2. array_unique和array_flip 这两个函数的区别

    array_unique和array_flip 这两个函数的区别 标签(空格分隔): php array_unique 和 array_flip 验证 1 没有排序的数组 2 array_unique ...

  3. JQuery获取元素宽度.width()与.css(‘width’)两个函数的区别

    整理翻译自:http://blog.jquery.com/2012/08/16/jquery-1-8-box-sizing-width-csswidth-and-outerwidth/ 大意是: 在J ...

  4. jQuery: 刨根问底 attr and prop两个函数的区别

    In this short post I will explain the difference between attributes and properties in HTML. The .pro ...

  5. exit()与_exit()函数的区别(Linux系统中)

    注:exit()就是退出,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出,一般都用-1或者1,标准C里有EXIT_SUCCESS和EXIT_FAILURE两个宏,用exit(EXI ...

  6. sql - sum() 和 count() 函数的区别

    对sql一直都是蜻蜓点水,突然也觉得对这两个函数的区别有点朦胧,查了一下,在这里说一下: sum():主要用于累加求和. count():主要用于行(记录)的统计.

  7. MySQL中SYSDATE()和NOW()函数的区别和联系

    MySQL中有5个函数需要计算当前时间的值: NOW.返回时间,格式如:2012-09-23 06:48:28 CURDATE,返回时间的日期,格式如:2012-09-23 CURTIME,返回时间, ...

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

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

  9. loadrunner文本检查点

    将脚本切换回代码界面, 在光标闪烁的上行,添加如下的代码: 添加的代码根据你检查的方式不同而不同, 你可以选择其中之一即可. 代码一: web_reg_find("Text=Payment ...

随机推荐

  1. stout代码分析之六:Stopwatch

    在进行性能测试时,经常需要计算某个函数执行的时长.stout中的Stopwatch类可实现纳秒精度的计时. Stopwatch内部使用timespec记录开始和技术时间.   timeval和time ...

  2. C语言中两个!!的作用

    两个!是为了把非0值转换成1,而0值还是0. 因为C语言中,所有非0值都表示真. 所以!非0值 = 0,而!0 = 1.所以!!非0值 = 1,而!!0 = 0.例如:i=123 !i=0 !!i=1 ...

  3. CSS图片宽度设置百分比 , 高度同宽度相同

    在图片长宽不相等的情况下,想将长宽设置为相等并且自适应屏幕,可以通过 js 的方式进行设置并通过监听 resize 来实时更新,但是这种方式很麻烦. 这里通过 css 来达到我们想要的效果: < ...

  4. JavaMail实现邮件的发送

    1,拷贝mail.jar 和activation.jar到项目中 2,开启邮箱的 POP3/SMTP服务,以QQ邮箱为例 进去QQ邮箱-->设置-->账号-->进行设置如下图 注意: ...

  5. mysql的数据库 索引

    1.两种主要的引擎:MyISAM和InnoDB 2.如何查看自己的表是什么类型:http://www.cnblogs.com/luosongchao/archive/2013/05/23/309592 ...

  6. jedis,spring-redis-data 整合使用,版本问题异常

    jedis,spring-redis-data 整合使用,版本不匹配的时候经常会报一些异常,例如1: java.lang.NoClassDefFoundError: org/springframewo ...

  7. bzoj 2957: 楼房重建 ——线段树

    Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...

  8. Spring中获取request的几种方法,及其线程安全性分析(山东数漫江湖)

    前言 本文将介绍在Spring MVC开发的web系统中,获取request对象的几种方法,并讨论其线程安全性. 原创不易,如果觉得文章对你有帮助,欢迎点赞.评论.文章有疏漏之处,欢迎批评指正. 欢迎 ...

  9. HDU 2059 龟兔赛跑 (dp)

    题目链接 Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击--赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成 ...

  10. VMware 12安装虚拟机Mac OS X 10.10不能上网问题

    1:从本机中选择打开连接网络,选择本地连接.如果是无线网可以选择无线网. 1:  2: 控制面板--->网络和共享中心 2:选择属性,点击共享按钮. 3:将internet连接共享下面选项都选中 ...