google搜索 51Testing站内搜索                    软件测试门户 | 软件测试培 训 | 文章资料精选 | 软件测试论坛 | 软件测试博客 | 测试招聘求职 
打印

GetROProperty,GetTOProperties,GetTOProperty的区别

我有一个问题想问一下


我已经明白了:
GetTOProperty():取得仓库对象的某个属性的值
GetROProperty():取得实际对象的某个属性的值

但是我不明白为什么Mercury要用GetTOProperty()这个方法.
GetTOProperty()这个方法有没有什么特别的用处呢?

因为GetTOProperty()是拿到仓库对象里的有限的几个属性值,如果是仓库对象里没有出现的属性它拿到的就是空值.
而GetROProperty()则可以拿到所有属性在运行时的值.
可以说GetTOProperty()相当于是GetROProperty()的一个子集.

GetTOProperty()的属性值总是和GetROProperty()的属性值是相等的. 它们两个是不会不相等的吧.
因为仓库对象里的属性值是用来识别对象的, 所以GetROProperty()的属性值也一定会是这个GetTOProperty()的属性值.

所以我不知道为什么Mercury会有GetTOProperty()这个方法,它还有什么特别的用处吗?
或者大家有没有遇到一种情况: 用GetTOProperty()可以做一些有价值的事情?

TOP





GetTOProperpy()的结果和GetROProperpy()并不一定是一样的
GetTOProperpy()就是你在仓库文件里设置的值,它的值可以含有通配符,可以匹配几种值,如同时匹配英文和中文

如有仓库对象JavaWindow("MyTest).JavaButton("Cancel"),设置其label属性为"Cancel|取消",这样就能通配英文和中文版本的界面
JavaWindow("MyTest).JavaButton("Cancel").GetTOProperty("label")的值,不管测试英文版还是中文版系统,都是"Cancel|取消"
JavaWindow("MyTest).JavaButton("Cancel").GetROProperty("label")的值,测英文版系统时就是"Cancel",测中文版系统时就是"取消"


GetTOProperpy确实用处不大,不像SetTOProperpy和GetROProperpy那么有用。
仓库对象的属性是自己设置的,一般没必要读取它。
不过作为接口QTP还是要提供的,可能有些特殊的地方需要用到GetTOProperpy


比如有些软件界面较乱,一些文字的大小写、前后带空格经常调整,为了兼容这些大小写和前后带空格的情况,写一个小函数,自动适应这些情况。

  
’函数功能:取Edit里的文字,能自动适应Edit前的标题的大小写和带空格的变化
Function GetEditText(EditObject)

   oldTOValue = EditObject.GetTOProperty("attached text")
   newTOValue = oldTOValue + "|" + LCase(oldTOValue) + "|" + UCase(oldTOValue) + "|" + Trim(oldTOValue)
   call EditObject.SetTOProperty("attached text", newTOValue)
   
   curText = EditObject.GetROProperty("text")

   GetEditText = curText
   
End Function

TOP

wonderful!
虽然我不能完全明白里面的意思,但是我已经在里面获取了我要的信息了。

thanks very much!!

TOP

yabest, thanks for your detailed description.
That's so amazing!

TOP

实践中再去学习
我要成名!~

TOP

引用:
但是我们怎么知道对象都有哪些封装接口和自身接口呢?
其实很简单,用对象查看器(Object Spy)查看对象,在查看窗口里有列出这些接口,包括属性和方法。
窗口中间有选择栏让你选择Run-time Object或者Test Object,
当你选择Run-time Object时,它显示的就是对象的自身接口(自身的属性和方法)
当你选择Test Object时,它显示的就是对象的封装接口(封装的属性和方法)
使用遨游浏览器
我用SPY 察看了一下www.163.com 输入用户名那个编辑框 结果没有Run-time Object 的属性 ,是不是就不能使用.object.属性 ?
参考图片1.jpg
后来 用IE打开163的网页一试就出来了,奇怪!~
参考图片2.jpg
难道测试时只能用IE就不能用其他的浏览器么?

[ 本帖最后由 Eagle1983 于 2007-3-29 11:34 编辑 ]
附件: 您所在的用户组无法下载或查看附件
人生就像一场旅行,不必在乎终点在哪里,在乎的应该是沿途的风景 以及 看风景的心情。

TOP

学到了,谢谢。。。。。。。。。
悄悄,是离别的笙箫,
沉默,是今晚的康桥。

TOP





引用:
原帖由 Eagle1983 于 2007-3-29 11:14 发表

使用遨游浏览器
我用SPY 察看了一下www.163.com 输入用户名那个编辑框 结果没有Run-time Object 的属性 ,是不是就不能使用.object.属性 ?
参考图片1.jpg
后来 用IE打开163的网页一试就出来了,奇怪!~
...
估计不行,QTP内置的Web插件只是针对IE的,如果要测试遨游浏览器,可能得有相应的插件才行。
想来应该没有遨游插件吧!

TOP

yabest 看了你的回复 深受启发阿 。送你三朵鲜花
人生就像一场旅行,不必在乎终点在哪里,在乎的应该是沿途的风景 以及 看风景的心情。

TOP

sdlkfj2 sdlkfj2 sdlkfj2 sdlkfj2 44

TOP

回帖,是为了抢分

TOP

回复 #1 lovetest6 的帖子


继续学习

TOP

好好看一下!

TOP

我咋越来越害怕了呢  你们咋都那么强呢  压力啊

TOP

强!!
从今天起, 做一个勤快的人
发帖, 回帖,灌水, 样样都不少

TOP

太感谢了,呵呵,终于明白了,

TOP

真是高手重重 啊  !  不怕QTP用不好了 !sdlkfj3

TOP

yabest 强人

TOP

大家讨论得很激烈。我把这些回答收藏了。谢谢。学习中。。。。。。

TOP

回复 #14 stomic 的帖子


学习中

TOP

 
当前时区 GMT+8, 现在时间是 2008-7-6 07:58Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹