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. exit()和_exit()两个函数的区别

    exit()和_exit()这两个函数都是用于函数退出,但这两者有一些细微的差别,在exit()函数里会调用_exit()函数.下面来看看exit()的函数代码大概: void exit(int st ...

  2. matlab中的conj函数,matlab中 conv和xcorr两个函数的区别conj()函数

    conv()函数表示的是对某个离散序列做卷积运算,比如说两个数组: x(n)=[3,11,7,0,-1,4,2],-3<=n<=3;h(n)=[2,3,0,-5,2,1],-1<=n ...

  3. matlab中conj和,[转载]matlab中 conv和xcorr两个函数的区别conj()函数

    conv()函数表示的是对某个离散序列做卷积运算,比如说两个数组: x(n)=[3,11,7,0,-1,4,2],-3<=n<=3;h(n)=[2,3,0,-5,2,1],-1<=n ...

  4. WSASocket()和socket()两个函数的区别

    winsock是socket的windows平台的实现.winsock是微软专门为windows操作系统开发的socket网络编程接口,而socket是通用网络编程接口. socket() 函数创建一 ...

  5. Oracle中nvl和nvl2这两个函数的区别

    1.nvl(value1,value2) 这个函数的意思是如果value1的值为null,那么函数返回value2的值  ,如果value1不为空,那么就返回value1的值. 需要注意的是value ...

  6. exit()与_exit()函数的区别

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

  7. MessageBox和AfxMessageBox函数的区别

    1.可以以下面的方式调用AfxMessageBox. AfxMessageBox("Are you sure?",MB_YESNO|MB_ICONQUESTION): 2.与Afx ...

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

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

  9. JavaScript中search和match函数的区别

    记得以前还在学校的时候,第一次接触 JavaScript 编程,算是第一种编程入门语言吧,总是分不清 search 和 match 这两个函数的区别,好不容易弄明白了,到了考试的时候又混淆了,唉!气. ...

最新文章

  1. Spring Validation最佳实践及其实现原理,参数校验没那么简单!
  2. 分享 14 个 Spring MVC 顶级技巧!
  3. java 中如何实现多进程_在Java中可以使用哪些方法来实现Java的多进程运行模式?...
  4. C# Winform下载文件并显示进度条
  5. 如何从Angular的ActivatedRoute数据结构中获得运行时路由信息
  6. 这6部顶级数学纪录片,告诉你数学一点都不无趣!
  7. 深入浅出《设计模式》之工厂模式(C++)
  8. CSDN写博客(字体颜色、大小)
  9. 深入探讨JavaScript函数
  10. 浅谈c#中使用lock的是与非
  11. 内是不是半包围结构_什么是自行车变速器上的“倾斜平行四边形”结构?
  12. python读音发音-python3 - 文本读音器
  13. cs客户端接收网页传来的数据_3.爬取数据-urllib库
  14. python web开发框架 支持windows_基于Python的Web开发框架研究_曾浩
  15. c语言冒泡排序知识点,c语言冒泡排序
  16. web界面设计(一)
  17. 企查查在哪查实缴_如何查询一家企业的注册资金是实缴的还是认缴的?
  18. 最近工作中遇到的问题和解决
  19. java中的length属性,length()方法,size()方法
  20. Docker容器搭建conpot蜜罐

热门文章

  1. 美国德尔里奥市遭遇勒索软件***,政府工作人员重回纸笔办公
  2. Android消息驱动Handler类分析
  3. 驰声科技推出AI对话考辅系统 将VR引入语音评测
  4. python 条件语句、循环语句
  5. 聚类算法评价指标学习笔记
  6. linux删除文件未释放空间问题处理
  7. WebConfig配置文件详解
  8. 学好WindowsServer技术的几大秘籍
  9. 如何不起协议,R1ping通R3
  10. 机器学习笔记-XGBoost