51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4877|回复: 15
打印 上一主题 下一主题

[原创] 描述性编程应用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-12-11 14:35:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看过51testing网上的一篇关于QTP描述性编程的文章,当中提到了可以使用index、Creationtime、Location等参数来定位对象。
那么,怎么能知道什么时候用index有效,什么时候用Creationtime有效?
有什么方法可以查看他们的运行时的值?比如查看一个UI对象的index=?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-12-11 15:39:55 | 只看该作者
使用object spy,然后选择 Run-time object Properties 就可以看到运行时的属性和方法了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-12-11 15:40:37 | 只看该作者
index、Creationtime、Location可以做为一个唯一的标识属性,也可以作为多个标识属性其中的一个,但最终目的是通过这些属性可以唯一标识到你的对象,具体怎么选择是依据你的应用程序和需求来的.
至于你要看运行时的值可以用QTP的Object Spy来看到的
个人意见
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2006-12-12 09:16:36 | 只看该作者
比如开两个浏览器,URL都是http://www.google.cn/,有谁能看到他们运行时的index值,哪个是0,哪个是1?
用Object Spy是看不到的,但是在代码里是会识别出来的。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-12-12 17:56:48 | 只看该作者
QTP不是对每种对象都会记录index属性
但就算没有记录也可以index就是用来区分一些相似对象
但此时index一般都做为一种辅助属性
第一个产生的对象为index=0,第二个为index=1等等
假如你可以很确定的用index值来区分不同对象,那就选择index作为描述属性
如果你无法确定对象的index那也可以选择对象仓库中的某个属性来作为描述属性
就像Creationtime、Location等
只要能准确区分就行
看一下help里面的description吧
会帮你搞定问题的

[ 本帖最后由 hiyizhiyu 于 2006-12-12 18:05 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2006-12-13 11:30:40 | 只看该作者
原帖由 hiyizhiyu 于 2006-12-12 17:56 发表
QTP不是对每种对象都会记录index属性
但就算没有记录也可以index就是用来区分一些相似对象
但此时index一般都做为一种辅助属性
第一个产生的对象为index=0,第二个为index=1等等
假如你可以很确定的用index ...


仔细看了帮助,有一些全面的了解的了。
建议大家也看一下帮助里的index identifier. See ordinal identifier,也很有帮助。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-12-18 16:32:57 | 只看该作者
一般是不用index做对象属性的,尽量用其它能唯一标识对象的属性.
贴上一段代码,可能会对各位了解描述性编程比较有帮助

Public Function BackToMainScreen()
          On Error Resume Next
        Set Win_kiva  = Description.Create()
                Win_kiva("name").Value = "JBufferedFrame0"
        Set Menu_File  = Description.Create()
                Menu_File("label").Value = "File"
        Set Menu_Exit  = Description.Create()
                Menu_Exit("label").Value = "Exit"
       
                JavaWindow(Win_kiva).JavaMenu(Menu_File).JavaMenu(Menu_Exit).Select
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2006-12-19 19:06:06 | 只看该作者
感谢iyaw的回复。
我现在都是用对象的方式,只有在对象找不到的情况下,才来考虑描述性编程的。所以有些会用到index的属性。
iyaw的做法,好像是只有描述性编程来做自动化测试的。

那么有一个问题,如果完全使用描述性编程(能适用对象的地方也不使用对象),其代码维护量是否会增加?各位有什么高见呢?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-12-20 10:15:34 | 只看该作者
不知道LS的朋友说完全使用描述性编程是怎么理解的
只用index来标识对象吗?
对代码维护来说,貌似不太可取
愿闻其详
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2006-12-20 10:20:20 | 只看该作者
我指的完全适用描述性编程,是指整个脚本都是使用描述性编程的思想编写的,对象库里没有对象的那种。
当然,用index来标识对象的也属于描述性编程。

不知道是否有人尝试过,结果如何?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2006-12-20 11:30:53 | 只看该作者
对象仓库没有对象?
那通过什么来标识啊
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2006-12-20 15:21:27 | 只看该作者
用纯描述性编程啊,把对象的属性和值写在代码里就可以了
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2006-12-20 16:08:32 | 只看该作者
如果要做到全部都用描述性编程的话,感觉需要做到两点:
1 对于你测试产品中的每一个对象,你需要清楚通过什么属性以及具体的属性值才使得QTP能唯一标识它,然后才可以把这些属性做为描述性编程的对象参数.如何建立这样一个对象属性库,应该需要花费一点精力吧,因为这个对象属性库的维护和调用方式很重要.
2 QTP不能忽视的用处是可以自动生成代码,然后方便我们做二次开发.但如果用描述性编程的话,我想很有可能就是要敲代码了,好像不太现实.而且考虑到脚本开发的效率和质量,我想不得不利用之前建立的对象属性库,自己做一个IDE.哇,有事做了!
所以感觉描述性编程只是个辅助办法
个人意见,听听大家得想法
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2007-1-8 20:36:47 | 只看该作者
还没有怎么用过QTP的描述性编程,不知道在哪里会用的多点?
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2008-3-7 13:18:20 | 只看该作者
(1)如果Web对象没有被添加到对象库中,QTP
(2)通过该Web对象的标识QTP无法识别该对象
(3)识别具有某些相同属性的对象(比如checkbox)
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2008-3-7 23:22:30 | 只看该作者
能用对象的尽量别用描述性编程
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-9-25 12:28 , Processed in 0.100753 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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