51Testing软件测试论坛

标题: GetTOProperty、GetROProperty、GetTOProperties的区别 [打印本页]

作者: qixiafeng    时间: 2007-3-9 11:10
标题: GetTOProperty、GetROProperty、GetTOProperties的区别
GetTOProperty和GetROProperty都用于取出对象的某个具体属性的值,它们的语法和用法几近相同,唯一的区别就是GetTOProperty取出的是录制对象的属性值,而GetROProperty取出的是在回放过程中运行的对象的属性值.
GetTOProperties,是指取出录制对象的所有属性。
GetTOProperty和GetROProperty语法都是:
object.GetTOProperty(Property)
或者是:
object.GetROProperty(Property)
其中Property,对象的属性,是必填项.
GetTOProperties的语法为:
object.GetTOProperties
实例:
Dialog("Login").Activate
Dialog("Login").WinEdit("Agent Name:").Set "training"
Dialog("Login").WinEdit("Agent Name:").Type  micTab
Dialog("Login").WinEdit("Password:").SetSecure "429376f06698f739df8bb1c09eab3d78dee316f7"
Set TableDesc = Dialog("Login").WinEdit("Password:").GetTOProperties
Properties=TableDesc.Count
reporter.ReportEvent micdone,"属性数目",Properties
If Dialog("Login").WinEdit("Password:").GetROProperty("attached text")="Password:" then
reporter.ReportEvent micdone,"name控件","存在"
else
reporter.ReportEvent micdone,"name控件","不存在"
end if
If Dialog("Login").WinEdit("Password:").GetTOProperty("attached text")="Password:" then
reporter.ReportEvent micdone,"name控件2","存在"
end  if
Dialog("Login").WinButton("OK").Click
'did the flight reservation window appear?
Window("Flight Reservation").Check CheckPoint("Flight Reservation")
Set Mydes=Descrīption.Create()
Mydes("attached text").value="Name:"
Mydes("nativeclass").value="Edit"

Set winedites=Window("Flight Reservation").ChildObjects(Mydes)
NoOfChildObjs =winedites.Count
For Counter=0 to NoOfChildObjs-1
if(Counter=0) then
       winedites(Counter).Set "ON"
  end if
Next

作者: qixiafeng    时间: 2007-3-9 16:34
恩,不错,总结的挺好,再接再励!
Fight!!
作者: 红狐    时间: 2007-3-9 16:42
恩,不错,总结的挺好,再接再励!
Fight!!
作者: qixiafeng    时间: 2007-3-9 16:45
标题: 多谢红狐
呵呵,先有自勉,后有他勉,不错不错
作者: 红狐    时间: 2007-3-9 16:51
不用谢不用谢,看一遍加深印象一遍
作者: BiSheng    时间: 2007-3-9 18:41
今天还“打架”了呢,再次加深学习了!
作者: rickyzhu    时间: 2007-3-9 18:45
一个是动态的,一个是静态

也就是一个是录制时候的值,另外一个是运行时候的值.

多谢作者拿出来跟大家分享,我也是前阵子才发现这个的.
作者: yabest    时间: 2007-3-22 11:29
TO是仓库文件里的仓库对象,RO是被测软件的实际测试对象,两者是不同的对象,是独立的。

QTP是通过TO来寻找和操作RO的,所以TO里必须含有RO的特征,这是两者相似的地方。

TO的属性可以在录制时抓取RO的特征属性得来,也可以在脚本运行时通过SetTOProperty来随意更改,通过GetTOProperty来读取。

RO的属性可以通过GetROProperty来读取。没有SetROProperty,要修改RO属性,只能通过对象具体的Method。

TO的属性值和对应RO的属性值并不一定相同,TO的属性值可以包含通配符和多种可能的RO属性值。
如Cancel按钮,为了同时匹配中英文,它的TO属性值为"Cancel|取消",它的RO属性值则是确定唯一的,或者为"Cancel",或者为"取消"。

详见精华区里的帖子 http://bbs.51testing.com/thread-13554-1-1.html

[ 本帖最后由 yabest 于 2007-3-22 11:40 编辑 ]
作者: alanxzg    时间: 2007-5-11 17:41
good
作者: lyscser    时间: 2007-5-11 22:40
呵呵,还是不错滴
作者: higkoo    时间: 2007-5-13 09:13
标题: 答案你都写出来了
“GetTOProperty取出的是录制对象的属性值,而GetROProperty取出的是在回放过程中运行的对象的属性值.”

答案就是上述这句话了!


录制完成后,库里就生成了一个固定值,就是TO。
回放过程这个值可能会改变,运行过程取值即为RO。


打个不适当的比方:

  你投资100万,这一百万就是TO。
  投资是有风险的,你可能赚,可能亏,实际剩下的就是你的RO了,RO是不断变化的。
作者: higkoo    时间: 2007-5-13 09:14
标题: 本帖已经被作者加入个人空间
我想请问,怎么把帖加到自己的个人空间啊?sdlkfj5
作者: wish_luckyman    时间: 2007-6-22 18:07
深奥,努力学习中
作者: heqingbluesky    时间: 2008-1-22 14:29
明白了,学习了.
作者: lxm_lxm    时间: 2008-10-13 15:10
好东西,收藏了,谢谢分享!
作者: zh_51testing    时间: 2009-4-7 17:07
标题: 赞一个。1楼是抛砖,其它层是引玉,8,11楼的解释我非常喜欢。
分享是美德。

[ 本帖最后由 zh_51testing 于 2009-4-7 17:08 编辑 ]
作者: sy070904    时间: 2009-8-18 20:16
不错,解释的很不错.




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2