51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4279|回复: 14
打印 上一主题 下一主题

[原创] QTP对象库重复问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-12-13 16:36:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
相信大家都遇到过这样的情况: 在多人并发开发脚本的时候,添加的对象库文件中,不可避免的会有对象的重复......重复的代价是对象库过于庞大,一旦代码中对象的属性变化,就需要到多分对象库中修改,维护成本高。

      现如今,我想减少重复的对象,并且当对象属性变化的时候,自动修改对象属性值。不知道大家在对象库这块有什么高见?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

推荐
 楼主| 发表于 2010-12-13 17:59:18 | 只看该作者
谢谢各位的回复。

对于对象库的合并,在脚本中,我们是动态调用指定的tsr文件,如果总是合并的化,还需要变更脚本。而且,如果对象库过于大,对于维护的成本是否很高,在检索对象时是否会慢?

对于自动更新这块,我们公司的开发代码,会将所有对象的属性存在一张表中(包括静态DB中的,jsp动态生成的),我们可以获取这张表,然后写一个比对的工具,就可以做到了.

对于消除重复对象这一块,我们可以通过人工找到重复的对象,但是消除/合并的,会涉及到脚本的修改,成本很高很高的,初步想再新建一张表,用于存储重复的关系,如果后续有哪个对象变了,直接修改一个就好了。
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

2#
发表于 2010-12-13 17:15:14 | 只看该作者
如果想减少重复的测试对象,那么合并对象库就可以,我觉的对于QTP来说,维护对象库的主要工作应该是不断的合并对象库,而不是去修改不同对象库中的相同对象。
至于对象属性变化时自动修改相应的对象属性值,这倒是一个挺新颖的想法,但是我也没什么实现的思路。QTP好象没有提供类似自动更新的功能
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-12-13 17:19:34 | 只看该作者
并发开发是各自使用各自的对象库?
如果是,那么建议用共享对象库,但要规范操作,避免多人同时编辑等问题;还有一个办法是使用描述性编程,但最好用伪描述性,因为比较高效
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2024-9-2 09:10
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]测试连长

    4#
    发表于 2010-12-13 17:32:47 | 只看该作者
    想真正的避免重复问题是不可能的,但可以通过一些方法来减少重复。比如:分工的时候尽量做到同一模块只由一个人负责,每个页面一个对象库文件,按模块功能来分别放置这些对象库文件。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2010-12-13 17:38:07 | 只看该作者
    回复 2# dreamever


        QTP是有自动更新对象的功能的, 但实际效果如何不大清除,没具体使用过~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2010-12-13 17:44:19 | 只看该作者
    回复 1# 1316016


        全部自动更新应该是比较难的,但你更新一个对象库相应的对象也进行更新是可能的,也就是说你只需要更新一个对象库就可以了。思路很简单,自己写个工具导入一个对象库,修改变更的对象并使程序进行标记修改的对象,然后导入其他的对象库文件,使程序根据你之前修改的对象库去匹配并修改当前对象库(根据程序做的标记),从而达到改一个对象库就可更新其他的对象库的功能。该办法实用性不知如何,但起码可以减轻点你的工作量~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2010-12-13 18:06:28 | 只看该作者
    并发开发是各自使用各自的对象库?
    如果是,那么建议用共享对象库,但要规范操作,避免多人同时编辑等问题 ...
    lantianwei 发表于 2010-12-13 17:19



         我们用的就是共享对象库,操作规范,或者按照页面/模块分对象库,这些我们之前都考虑过,但是还是会有重复。一旦上传SVN失败,文件的比对也是个问题。
       
        而且,后续新人编写新代码的时候,他/她也没有太多的时间去看原有的对象库文件,多半也是自己新写,这样重复的就更多了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2010-12-13 19:35:23 | 只看该作者
    回复 6# lantianwei
    这种做法其实是把以前winrunner 的自动学习功能重新实现了一遍,初步感觉工作量会不小。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2010-12-14 09:50:53 | 只看该作者
    能否在做一个项目前将所有用到的对象按照模块全部添加到对象库中呢,这样即使后面添加,重复性也就变小了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2010-12-14 10:33:53 | 只看该作者
    能否在做一个项目前将所有用到的对象按照模块全部添加到对象库中呢,这样即使后面添加,重复性也就变小了
    xiaozhai 发表于 2010-12-14 09:50



        这样不太现实,而且后续开发的时候,查找对象也会很费时。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2010-12-16 18:06:50 | 只看该作者
    111
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2010-12-17 14:01:27 | 只看该作者
    我公司2010年6月份刚在纳斯达克上市,现在要找一名自动化测试组长,薪资福利良好:

    我们项目组需要招聘自动化测试组组长,职位信息如下:
    1.计算机相关专业本科以上学历,熟悉软件工程师学原理;
    2.软件测试相关经验3年以上,其中至少包括2年功能自动化测试经验;
    3.熟悉QTP工具的使用,了解QTP原理和对象识别机制;
    4.熟悉VBScript脚本语言,能进行相关自动化脚本函数的编写;
    5.较强的语言表达和文档编写能力及良好的沟通技巧;
    6.有金融银行基础业务知识经验、有网银业务经验为佳;
    7.有自动化框架编写、设计经验和软件开发经验有团队管理经验为佳;
    8.熟悉Java、J2EE 、WebSphere 、Application Serve、DB2、Oracle等为佳
    9.有Unix平台的使用经验(AIX/Solaris/HPUX/Linux)为佳;
    欢迎回复,谢谢:
    shanjing1983@163.com
    sophiashan07@hotmail.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2010-12-30 13:58:34 | 只看该作者
    对象库的操作, 大家都很顺利吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2010-12-30 15:31:16 | 只看该作者
    恩,我也一直很头疼这个问题
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-22 11:43 , Processed in 0.078070 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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