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

在实际的自动化脚本开发过程中,发现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的默认值写入报告中.

上例本作者未自己再动手写相关的例子,摘自:

http://www.51testing.com/?uid-306685-action-viewspace-itemid-829971






















本文转自hblxp32151CTO博客,原文链接:http://blog.51cto.com/starpoint/1200105,如需转载请自行联系原作者
上一篇:网络分析工具


下一篇:《SEO的艺术(原书第2版)》——2.2 基于算法的排名系统:爬行、索引和排名