转:检查点(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是否放在查找内容的前面。
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);
转:检查点(web_reg_find函数详解)的更多相关文章
- malloc 与 free函数详解<转载>
malloc和free函数详解 本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1 ...
- NSSearchPathForDirectoriesInDomains函数详解
NSSearchPathForDirectoriesInDomains函数详解 #import "NSString+FilePath.h" @implementation ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- Linux C popen()函数详解
表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...
- kzalloc 函数详解(转载)
用kzalloc申请内存的时候, 效果等同于先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 ,所有申请的元素都被初始化为 0. view plain /** * kzal ...
- Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...
- jQuery.attr() 函数详解
一,jQuery.attr() 函数详解: http://www.365mini.com/page/jquery-attr.htm 二,jQuery函数attr()和prop()的区别: http: ...
- memset函数详解
语言中memset函数详解(2011-11-16 21:11:02)转载▼标签: 杂谈 分类: 工具相关 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大 ...
- CreateFile函数详解
CreateFile函数详解 CreateFile The CreateFile function creates or opens the following objects and returns ...
随机推荐
- Linux下tomcat的安装详解
Linux下tomcat的安装详解 来源: ChinaUnix博客 日期: 2007.01.21 22:59 (共有0条评论) 我要评论 一,安装前的准备:1,Linux版本:我的是企业版.(至于红帽 ...
- jQuery实现 图片的局部放大效果
<html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title> ...
- java中的静态变量
大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 static 大显身手的时候了!! Java 中 ...
- JSON.stringify 应用
原文:https://technet.microsoft.com/zh-cn/sysinternals/cc836459 url JSON.stringify 函数 将 JavaScript 值转换为 ...
- react中文API解读一(快速开始)
记下自己的react学习之路 ,官方文档写的很详尽,学起来应该比较简单 官方文档地址:react.http://reactjs.cn/react/docs/getting-started.html 1 ...
- openwrt默认不开启wifi
Openwrt默认不开启wifi,要开启的话, 修改这个文件: openwrt/trunk/package/kernel/mac80211/files/lib/wifi/mac80211.sh. 滚到 ...
- LeetCode OJ 220.Contains Duplicate 3
Given an array of integers, find out whether there are two distinct indices i and j in the array suc ...
- ccw-ide
有bug,会把working set弄乱,整理后能重启一次正常,再次重启又乱了.
- word project 2010破解
1.用这个工具提示失败: failed to inject memory Failed to inject memory!解决方法 浏览:6545 | 更新:2013-07-15 15:52 在激活o ...
- oracle 常用sql语句
oracle 常用sql语句 1.查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom d ...