51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 5152|回复: 11
打印 上一主题 下一主题

[原创] 关于RegisterUserFunc的疑惑.

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-7-14 17:59:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Function MySet (obj, x)

dim y

y = obj.GetROProperty("value")

Reporter.ReportEvent micDone, "previous value", y

MySet=obj.Set(x)

End Function

RegisterUserFunc "WebEdit", "Set", "MySet"

Browser("MercuryTours").Page("FindFlights").WebEdit("Country").Set "Canada"

UnRegisterUserFunc "WebEdit", "Set"

以上这段代码是QTP帮助里的,很疑惑RegisterUserFunc 是现实Function 里的对象属性加到run 状态下的对象库中吗?
在现实中实现什么样子的效果呢?

[ 本帖最后由 风过无息 于 2007-7-14 18:38 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-7-14 22:06:42 | 只看该作者
这个函数提供的是类似面向对象里面重载(Override)的功能。


  1. Function MySet (obj, x)
  2.        dim y
  3.        y = obj.GetROProperty("value")
  4.        Reporter.ReportEvent micDone, "previous value", y
  5.        MySet=obj.Set(x)
  6. End Function
复制代码

定义了一个用户自定义的函数MySet,当该函数被调用时对象obj的原有value属性值被输出到Report中,然后才被赋予新的属性值。


  1. RegisterUserFunc "WebEdit", "Set", "MySet"
复制代码

向QTP声明,从现在开始WebEdit对象类型的Set方法将由用户自定义的MySet方法替代。


  1. Browser("MercuryTours").Page("FindFlights").WebEdit("Country").Set "Canada"
复制代码

调用WebEdit("Country")对象的Set方法时,其实是在调用MySet方法(被Override)了。


  1. UnRegisterUserFunc "WebEdit", "Set"
复制代码

注销前面的Override,恢复WebEdit对象类型原有的Set方法。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-7-15 10:56:55 | 只看该作者
谢谢楼上回答.受益匪浅.
其实就是把QTP原有的方法重构了使用.

[ 本帖最后由 风过无息 于 2007-7-15 10:58 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-7-15 15:40:26 | 只看该作者
原帖由 风过无息 于 2007-7-14 17:59 发表
Function MySet (obj, x)

dim y

y = obj.GetROProperty("value")

Reporter.ReportEvent micDone, "previous value", y

MySet=obj.Set(x)

End Function

RegisterUserFunc "WebEdit", "S ...

Help里面写得那么复杂干吗,这样就可以啦:

Function MySet (obj, x)

dim y

y = obj.GetROProperty("value")

Reporter.ReportEvent micDone, "previous value", y

MySet=obj.Set(x)

End Function

Dim ReturnValue
ReturnValue = MySet(Browser("MercuryTours").Page("FindFlights").WebEdit("Country"),  "Canada")
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-7-15 16:41:57 | 只看该作者
哟,风大版主也提问题啊,新鲜呃,嘻嘻

其实看代码就知道什么意思了,楼上的兄弟回答你了:)
原帖由 风过无息 于 2007-7-14 17:59 发表
Function MySet (obj, x)

dim y

y = obj.GetROProperty("value")

Reporter.ReportEvent micDone, "previous value", y

MySet=obj.Set(x)

End Function

RegisterUserFunc "WebEdit", "S ...
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2007-7-15 16:48:45 | 只看该作者
三人行必有我师,呵呵.
理解出问题了,所以弄了半天都出来效果,还是大家一语惊醒梦中人啊.

[ 本帖最后由 风过无息 于 2007-7-15 16:49 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-7-16 18:45:58 | 只看该作者
回报大家,我把RegisterUserFunc 整理了一下,希望对那些和我一样理解有点偏差的人有点帮助.
  1. Function MySet (obj, x)
  2. dim y
  3. y = obj.GetROProperty("value")
  4. Reporter.ReportEvent micDone, "previous value", y
  5. MySet=obj.Set(x)
  6. End Function
  7. RegisterUserFunc "WebEdit", "Set", "MySet"
  8. Browser("51Testing软件测试论坛 测试 | 软件测试").Page("51Testing软件测试论坛 测试 | 软件测试").WebEdit("username").Set "test"
  9. UnRegisterUserFunc "WebEdit", "Set"
复制代码


大家可以看到MySet的方法其实是重载了QTP的set的方法,它还取了录制时候的value的值并输出到result中,大家可以看到结果的(见附件).
由此大家可以修改或者增加QTP的一些方法来灵活的应用.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-7-17 00:49:18 | 只看该作者
原帖由 风过无息 于 2007-7-16 18:45 发表
回报大家,我把RegisterUserFunc 整理了一下,希望对那些和我一样理解有点偏差的人有点帮助.
Function MySet (obj, x)
dim y
y = obj.GetROProperty("value")
Reporter.ReportEvent micDone, "previous va ...

我晕! 版主你好像道现在都不明白 Reporter.ReportEvent 的作用哦?

我写QTP 的script,从来不用QTP自带的检查点,所有检查用VBscript搞定,然后把checking结果用Reporter.ReportEvent 来写入QTP的result。

[ 本帖最后由 garyyes 于 2007-7-17 00:52 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2007-7-17 12:22:40 | 只看该作者
我是说,通过RegisterUserFunc 来实现脚本用的set功能改变为我们自己写的myset的功能.
我们的例子可以看到,假如我们用了RegisterUserFunc 以后,我们在实现set功能以后还能输入一条日志.
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-7-18 21:36:51 | 只看该作者

回复 #1 风过无息 的帖子

支持!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2009-3-27 11:24:47 | 只看该作者
日志操作   是 个人习惯问题了。。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2009-3-31 00:48:58 | 只看该作者
用户自定义方法的注册,QTP帮助文件里有的。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-2 08:11 , Processed in 0.079754 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表