51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3679|回复: 16
打印 上一主题 下一主题

[原创] 解读DP和对象库

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-3-5 10:09:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚开始学QTP时,用的是对象库,因为对象库简单易学,使用方便;后来慢慢地,有人说描述性编程(简称DP)功能强大,所以也很自然的用起了DP。
          首先说一下我在一个项目中的真实经历:我在之前用QTP做了一个WEB项目,在该项目中全部用了DP,其实原本是想用对象库的,但考虑到用对象库的话,必须严格按照对象库命名规范,比较烦琐,而且那个系统还有一个特殊的地方,就是所以的网页都是在一个PAGE下,那么势必导致所有的子对象都会在一个PAGE下,这样维护起来也是非常麻烦的,不过其实这个问题是可以解决的(yabest兄给了一个比较好的解决方案-http://bbs.51testing.com/thread-102128-1-1.html),大家如果以后遇到也可以参考一下。在整个项目用DP的开发过程中确实发现DP可以提高脚本的编写速度,而且DP的使用起来也非常灵活。但慢慢地随着项目进度的发展,发现项目中还是会有较多的UI发生了改变,这时麻烦的事就来了,需要一个一个地到脚本文件里进行修改,非常麻烦,脚本少还可以处理一下,如果非常多的话,那会晕死人的。还有如果在脚本中不进行一些特殊处理,那么具体定位到出错的对象也是非常困难的事(我们项目用的是FUNCTION,可能ACTION会好些)。因此可以看出DP将会导致了一个非常严重的问题:项目后期对象的维护将会变地非常困难!
           如果用DP,有什么办法可以避免这种问题呢?也许有人会说有,自己再建个XML来放置对象库吧,这样就可以通过外部文件修改对象了啊!其实不知道大家有没有发现,如果我们用一个XML来管理对象库和我们用QTP的对象库来管理有什么本质区别吗?其实他们的本质是一样的,都是一个外部文件,目的都是可以独立地对对象库进行管理维护,而且自定义的XML远没有QTP自身提供的对象库功能强大!那么我们何必要舍近求远呢?硬要自己搞出一个东西来呢!可能有时还会沾沾自喜地和别人炫耀:看,我把DP的对象处理问题解决了!呵呵。。。。真有点让人哭笑不得!我这里有一个比较好的关于DP的处理工具,是老外写的,应该比我们一般的简单好用,特奉献给热衷于DP的朋友们使用(下载地址:http://www.qantom.shubharaghu.com/html/dor_download.html),具体的使用可以参看该工具自带的说明,确实非常方便!但存在的问题也显而易见!!!
           当然DP并不是没有存在的理由!首先有一个取子对象(ChildObjects)的例子就只有DP可以做到,其他的应该DP可以做到的,对象库也可以办到。还有一个,也就是DP最突出的优势,可能我们平时也不怎么碰到,大家也就可能都不知道DP的核心用处原来是这个,那就是当我们在开发项目时,我们需要自动化测试,软件开发同步进行,而这时因为我们的项目还没有开发出来,那么UI对象就无从说起,所以这时我们要用对象库进行自动化测试显然是不现实的,而这时DP就可以大显神威了,呵呵。。。。我想此时再没有人会对DP抱怨了!
           综合上述,我个人觉得我们在做自动化项目时(如果项目已开发出来)还是应该以对象库为主,DP为辅,要不后期项目的对象库维护将会非常困难(当然你确定你的项目中的对象不发生变化或变化极少除外)。工具中对象库的出现本身就是为了解决对象和脚本的分离,以便更好地对对象进行管理和维护,因此我觉得我们没有必要再吃回头草了。(这里也说一个特例,比如是外包项目,你想偷懒,也可以用DP。哈哈。。。。)
           [以上是本人在学习DP和对象库过程中的一点看法,欢迎大家提出不用看法!]

[ 本帖最后由 lantianwei 于 2008-3-5 10:29 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-3-5 10:16:46 | 只看该作者
不错!支持一下,正在学习中。。。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-3-5 10:27:06 | 只看该作者
这么说楼主是偏向于用对象库了,我也是这么想的。
另外,你说“在整个项目用DP的开发过程中确实发现DP可以提高脚本的编写速度”,这是为什么呢?用对象库的话,那是慢在哪里?对象库的管理与维护上?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-3-5 10:34:10 | 只看该作者
原帖由 ppent 于 2008-3-5 10:27 发表
这么说楼主是偏向于用对象库了,我也是这么想的。
另外,你说“在整个项目用DP的开发过程中确实发现DP可以提高脚本的编写速度”,这是为什么呢?用对象库的话,那是慢在哪里?对象库的管理与维护上?

1.对象库的整理比较麻烦,因为所有的页面都是在一个PAGE下的,那么必须人为的进行划分,否则对象的维护也非常麻烦
2.对象的命名规范问题,这是我想偷懒 ,用DP就没有这个问题了
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-3-5 10:38:01 | 只看该作者
DP有它的意义所在,个人感觉当项目开发和测试脚本并行开发的时候,DP当然体现了它的意义。然而目前形式,一般功能自动化都是项目后期介入,此时软件开发已经进入开发后期,也经历了大量的手工测试,所以软件相对稳定,功能自动化用来做回归测试。
大多时候我也都使用对象库,正如LZ所说,对象库用起来简单方便,节约了大量的劳动力,而DP往往与正则表达式结合起来用来定义那些动态改变的对象。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-3-5 11:16:00 | 只看该作者
代码中还真还少用到DP。。。除了ChildObjects外,就只有在回复别人问题时候才用——可以省掉对象库截图这一步~~

另外,ls说得不错,自动化测试应该是在产品比较成熟稳定的中后期才会引入的吧,过早开始进行自动化测试成本是不是太高了点,至少得UI相对稳定吧,否则每天更新个版本就得维护一次脚本,累死不说,天天搞些重复维护脚本的体力活,兴趣也都要被磨光了。。。

PS:LS同学能不能换个头像。。。每次看见都特倒胃。。。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2008-3-5 15:00:08 | 只看该作者
    非常支持你!   描述性编程虽好,可不能贪杯喔!  前不久我也做了一个尝试,所有脚本都用描述性编程,完全不对对象库,发现了一些问题。   它们两者确实是相辅相成的,对象库要为主打!   描述编程本身还有些我认为是缺陷的地方:http://bbs.51testing.com/thread-106282-1-1.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2008-3-5 20:11:45 | 只看该作者
    原帖由 higkoo 于 2008-3-5 15:00 发表
    非常支持你!   描述性编程虽好,可不能贪杯喔!  前不久我也做了一个尝试,所有脚本都用描述性编程,完全不对对象库,发现了一些问题。   它们两者确实是相辅相成的,对象库要为主打!   描述编程本身还有些我认为是 ...

    非常感谢兄弟的支持!最近看兄弟在QTP板块发表的帖子很多,有时间可以互相交流一下.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-3-14 09:26:56 | 只看该作者
    这里我看到你一直在讨论对象库的问题,我想问你提到的对象库的使用是指直接的录制回放再修改,还是指建立自己的对象库,然后关键字驱动脚本?
    不太理解。我作QTP时间还不长。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2008-3-14 10:24:56 | 只看该作者
    原帖由 jaunty 于 2008-3-14 09:26 发表
    这里我看到你一直在讨论对象库的问题,我想问你提到的对象库的使用是指直接的录制回放再修改,还是指建立自己的对象库,然后关键字驱动脚本?
    不太理解。我作QTP时间还不长。

    至于对象库的得到,无论什么方法都可以,只要你觉得适合你就行了.可以录制后再修改,也可以先创建对象库.各有各的优势.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2008-3-14 10:40:56 | 只看该作者
    之前和sqafuroms的QTP版主tarun_lalwani交流了一下,他告诉我他们用的是DP,问其理由是方便,灵活.后来我又非常认真的考虑了这个问题,可能我这篇文章写的还是有点偏颇,其实DP和对象库是各有优势的,DP主要是会花费后期的维护时间,而对象库则主要会花费前期对象库建立的时间.所以不能一棒子打死任何一个,如果真的需要得到答案,必须进行一个度量.(而且可能不同的项目度量的结果也会不一样)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    12#
    发表于 2008-3-14 23:32:02 | 只看该作者
    对象库 和 描述性编程 各有千秋,各有自己的用武之地。为什么一定要比出个 哪个好 那个不好呢? 可能在某些项目上 使用对象库比较好,因为它们的UI比较稳定,应用程序也比较稳定;而有些就比较适合使用 描述性编程,如某些需要动态获取的对象。但更多的时候,是 两者兼备,只是比例不太一样。

    [ 本帖最后由 walker1020 于 2008-3-14 23:34 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2008-3-14 23:33:20 | 只看该作者
    比较它们,没有一个统一的标准。如果有,那也是:如果它适合自己的测试项目,那么它就是最好的。套用一句话,适合的就是最好的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2008-3-15 02:54:31 | 只看该作者
    一声叹息。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    15#
    发表于 2008-3-15 12:55:12 | 只看该作者
    原帖由 yabest 于 2008-3-15 02:54 发表
    一声叹息。。。


    叹息什么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
     楼主| 发表于 2008-3-17 10:52:08 | 只看该作者
    原帖由 yabest 于 2008-3-15 02:54 发表
    一声叹息。。。

    yabest前辈应该还是比较赞成对象库吧,呵呵...怎么不多给点评价呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2008-3-17 12:37:33 | 只看该作者
    原帖由 walker1020 于 2008-3-14 23:33 发表
    比较它们,没有一个统一的标准。如果有,那也是:如果它适合自己的测试项目,那么它就是最好的。套用一句话,适合的就是最好的。

    版主说的不错,适合自己才是最好的!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-29 04:21 , Processed in 0.116206 second(s), 30 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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