RegisterUserFunc为测试对象添加新方法或重写已有方法

上一篇 / 下一篇  2012-11-27 16:46:01 / 个人分类:QTP自动化笔记

    QTP中为了提高扩展性,提供了一个为测试对象添加一个新的自定义方法,或者重写测试对象已有的方法的函数RegisterUserFunc,在此给大家分享一下。
RegisterUserFunc:为测试对象添加一个新的自定义方法,或者重写测试对象已有的方法
语法:
RegisterUserFunc TOClass, MethodName, FunctionName, SetAsDefault
说明:
TOClass   想要注册方法的对象
MethodName 想要注册的方法名称,不能有空格
FunctionName 函数中自定义的函数名称
SetAsDefault 是否要注册为对象的默认操作,值为:False,或者True
 
------------------------例子1:为webedit添加新方法----------------
需求:
1.为webedit添加一个方法,方法名为"NewMethod1"
2.该方法实现获取webedit的默认值,并将该值写入reporter中
实现思路:
1.用vbs封装一个方法实现获取webedit的默认值,并将该值写入reporter中
2.利用RegisterUserFunc在qtp运行时环境中注册该函数
 
实现步骤:
1.以下代码是用vbs封装一个方法实现获取webedit的默认值,并将该值写入reporter中。
  将以下脚本保存为vbs文件,这里保存为test.vbs,保存于d:\
Sub GetDeafaultValue(objWebEdit)
 WebEditDeafaultValue = objWebEdit.GetRoProperty("default value")
 Reporter.ReportEvent micDone,"获取WebEdit的默认值","默认值为:" & WebEditDeafaultValue
End Sub
2.加载函数test.vbs到qtp的运行时环境中
加载有动态加载和静态加载,本例采用动态加载方式
在qtp专家试图第一行输入如下代码:
executefile "d:\test.vbs"
3.在qtp运行时环境中注册函数
在qtp专家试图第二行输入如下代码:
RegisterUserFunc "WebEdit","NewMethod1","GetDeafaultValue"
4.webedit调用新注册的NewMethod1方法
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").NewMethod1
 
打开百度首页,按照1-4部操作,运行qtp脚本,检查reporter报告中已将webedit的默认值写入报告中
 
--------------------------例子2:重写wededit的set方法-------------
需求:
1.重写webedit的set方法,并将重写的方法作为默认操作
2.让set方法实现,为wededit赋值前获取webedit的默认值,并将该值写入reporter中
3.赋值后,获取webedit的编辑框的当前值,并将当前值写入reporter中
 
实现思路:
1.用vbs封装一个函数实现需求2、3的功能
2.利用RegisterUserFunc在qtp运行时环境中注册该函数
 
实现步骤:
1.以下代码是用vbs封装一个函数实现需求2、3的功能,并将该值写入reporter中。
  将以下脚本保存为vbs文件,这里保存为test.vbs,保存于d:\
Sub SetValue(objWebEdit,InputValue)
 WebEditDeafaultValue = objWebEdit.GetRoProperty("default value")
 Reporter.ReportEvent micDone,"获取WebEdit默认值","默认值为:" & WebEditDeafaultValue
 objWebEdit.Set InputValue
 WebEditValue = objWebEdit.GetRoProperty("value")
 Reporter.ReportEvent micDone,"获取WebEdit输入值","输入值为:" & WebEditValue
End Sub
2.加载函数test.vbs到qtp的运行时环境中
加载有动态加载和静态加载,此处采用静态加载的方式:
在qtp的file->settings -> resources ->libraryes 中添加步骤1中保存的test.vbs文件
3.在qtp运行时环境中注册重写的set方法
在qtp专家试图第一行输入如下代码(注意:第二个参数需要与qtp中被重写的方法同名):
RegisterUserFunc "WebEdit","Set","SetValue",True
4.webedit调用重写后的Set方法
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "新输入的值"
 
打开百度首页,按照1-4部操作,运行qtp脚本,检查reporter报告中已将webedit的默认值和新输入的值写入报告中

TAG:

gift_217的个人空间 引用 删除 gift_217   /   2014-07-29 14:14:58
5
让测试飞起来的个人空间 引用 删除 让测试飞起来   /   2014-03-14 17:07:56
5
Thinking 引用 删除 jing17   /   2013-08-17 11:21:01
好东西,学习了!!
Thinking 引用 删除 jing17   /   2013-08-17 11:20:45
5
虎肖至尊的个人空间 引用 删除 ChinaTNT   /   2012-11-28 12:19:51
这段代码是没有问题的,你的报什么错?
千与千寻觅的个人空间 引用 删除 lijingprince5   /   2012-11-28 10:56:02


executefile "d:\test.vbs"
3.在qtp运行时环境中注册函数
在qtp专家试图第二行输入如下代码:
RegisterUserFunc "WebEdit","NewMethod1","GetDeafaultValue"
例子1的代码 好像有点问题呢运行不成功
 

评分:0

我来说两句

Open Toolbar