51Testing软件测试论坛

标题: 【对象库】突然对你又爱又恨 [打印本页]

作者: 假装不在    时间: 2008-4-8 15:32
标题: 【对象库】突然对你又爱又恨
爱你的简单快捷,录制简单,操作方便,入手快。也很简单的突出了脚本语言的优势...
        恨你的管理太过潦倒,对象一多,管理麻烦;如果使用函数去调用,会出现了以后这个函数在其他项目中的通用性差。例如现在这个函数中调用对象库中的对象。那么下次有其他项目,你要使用这个函数去调其他对象库,那么你就要去修改其他项目中的对象库的对象属性等。
    函数的可重复使用,也是衡量一个函数的价值所在。
        星期前写的很多个函数,因为对象库的更改都用不上了,要么就优化函数,要么就修改新录制的对象属性。
作者: getfly    时间: 2008-4-8 16:10
不明白楼主的意思。看来我的功力不够呀。要加紧修炼了。
作者: three116    时间: 2008-4-8 19:03
可以写几个函数 专门对函数中用到的对象做初始化设置呀
不过如果你把最底层的对象也写到函数中 那就没办法了,那些对象太多了
作者: 假装不在    时间: 2008-4-8 20:46

我有这样的一个问题,现在我的程序如果是通过“录制和运行。。。”那个设置,让它先把前台跑起来,就能够识别到对象。
但如果用过代码把程序走起来,就会发现对象无法识别。
大家有谁遇见这种问题。
作者: getfly    时间: 2008-4-10 13:59
"但如果用过代码把程序走起来"这句话的意思不太懂,是不是“通过代码控制运行”。 而不是通过qtp中"Run", 来控制呢。
但是我想,无论哪种,都得在qtp平台上。找不到就说明对象库中没有。可以看看对象库。
作者: 假装不在    时间: 2008-4-10 14:49

情况这样的:
如果第一次是共享对象库,直接通过运行SystemUtil.Run,就会出现对象无法识别。
第2次,把那句去掉后,然后直接在QTP中设置运行,那么起来对象就可以识别到。
第3次,把QTP中的设置运行去掉,再通过SystemUtil.Run对象却又可以设别到了。
.....
把QTP关了再开,再用第3步的,又不行了。我晕
作者: sally_0817    时间: 2008-7-24 08:17
对象库啊对象库
楼主说的这种又爱又恨的心情,我想大家都有

但最终还是爱大于恨吧,希望对象库在未来的版本中有更好的改进和提高
作者: dycadrtf    时间: 2008-7-24 08:49
额,搂主的问题貌似我好像常遇见
作者: 假装不在    时间: 2008-7-24 10:20
标题: 回复 8# 的帖子

现在没有了,因为现在基本都不用对象库了....
不过对象库用到高手了,这些问题都没什么问题。哈哈,不过我还不是。
作者: tanky    时间: 2008-7-24 10:56
原帖由 假装不在 于 2008-7-24 10:20 发表

现在没有了,因为现在基本都不用对象库了....
不过对象库用到高手了,这些问题都没什么问题。哈哈,不过我还不是。



难度你现在写脚本都是用spy手工一条条去写?

再高的的高手也改变不了对象库的机制啊!只要用对象库就会面临管理对象库的问题。
作者: 假装不在    时间: 2008-7-24 11:04

手工写多好呀,写一次,以后都可以用。移到别人机器上,有时候QTP对对象的识别会不一样,这东西瞒怪的。
就例如第一次在你的电脑设别到的是一个vb的控件。
在别人电脑上识别到的是winobject,脚本自然也就跑不起来,又得修改另一台电脑的环境更甚至你不知道到底是哪里出了问题,重装后也都还一样,时间就浪费在这里的,别人看来,你的脚本太蹩脚了,效率也低。看就有够你折腾的。
作者: tanky    时间: 2008-7-24 11:16
yabest看到了,又要反击了哈哈。
作者: yabest    时间: 2008-7-24 11:50
说yabest,yabest就到!我来也~~

假装不在,具体说说看,对象库怎么让你不爽的,怎么会影响函数复用性了?想办法解决,不要因噎废食啊!
作者: 假装不在    时间: 2008-7-24 11:55

有马甲...或者有人通风报信..嘿嘿。
其实不爽的,例如因为环境的更换,导致了对象库中的对象无法识别。
就和我在11楼中说到的,
例如在自己电脑识别出来的对象,自己也录制完了,丢在对象库中。
但是到了其它人的电脑里,要跑这脚本,对象却无法识别。
不过现在我这边倒也很少出现这样的情况,或者是因为对这玩意认识提高了。
作者: yabest    时间: 2008-7-24 15:40
原帖由 假装不在 于 2008-7-24 11:55 发表

有马甲...或者有人通风报信..嘿嘿。
其实不爽的,例如因为环境的更换,导致了对象库中的对象无法识别。
就和我在11楼中说到的,
例如在自己电脑识别出来的对象,自己也录制完了,丢在对象库中。
但 ...


这个环境变化,对象无法识别的问题,跟对象库无关吧,你用描述性编程也是一样的。

QTP做界面测试,对界面环境变化比较敏感,最好还是选用一个标准的QTP Server,大家都用终端服务或远程桌面连接上去,都在里面开发和执行QTP,可以避免很多无谓的环境变化问题,节省大量的精力!

[ 本帖最后由 yabest 于 2008-7-24 15:43 编辑 ]
作者: 假装不在    时间: 2008-7-26 12:22
yabest,
http://bbs.51testing.com/viewthr ... p;page=1#pid1029479
那天我脑袋发热,突然写了这段话,指点指点。
作者: summitwk    时间: 2008-7-26 13:15
呵呵,前两天刚好也遇到类似烦恼,开始使用关联对象库,可以解决在本机运行的问题。
但使用关联对象库时,在其他机器运行时会提示关联对象库不存在,解决办法是先关联,然后把对象从关联对象库拷贝到Local对象库。
感觉自己的解决办法也挺傻的,抛砖引玉。

[ 本帖最后由 summitwk 于 2008-7-26 13:17 编辑 ]
作者: yabest    时间: 2008-7-26 22:14
对象库 vs 描述性编程, 建议大家好好看下QTP帮助里对描述性编程的阐述和定位

Using Programmatic Descriptions

When you record an operation on an object, QuickTest adds the appropriate test object to the object repository. Once the object exists in the object repository, you can add statements in the Expert View to perform additional methods on that object. To add these statements, you usually enter the name (not case sensitive) of each of the objects in the object's hierarchy as the object description, and then add the appropriate method.

For example, in the statement below, username is the name of an edit field. The edit field is located on a page with the name Mercury Tours and the page was recorded in a browser with the name Mercury Tours.

Browser("Mercury Tours").Page("Mercury Tours").WebEdit("username")

Because each object in the object repository has a unique name, the object name is all you need to specify. During the test run, QuickTest finds the object in the object repository based on its name and parent objects, and uses the stored test object description for that test object to identify the object in your Web site or application.

You can also instruct QuickTest to perform methods on objects without referring to the object repository or to the object's name. To do this, you provide QuickTest with a list of properties and values that QuickTest can use to identify the object or objects on which you want to perform a method.

Such a programmatic description can be very useful if you want to perform an operation on an object that is not stored in the object repository. You can also use programmatic descriptions in order to perform the same operation on several objects with certain identical properties, or in order to perform an operation on an object whose properties match a description that you determine dynamically during the run session.

For example, suppose you are testing a Web site that generates a list of potential employers based on biographical information you provide, and offers to send your resume to the employer names you select from the list. You want your test to select all the employers displayed in the list, but when you design your test, you do not know how many check boxes will be displayed on the page, and you cannot, of course, know the exact object description of each check box. In this situation, you can use a programmatic description to instruct QuickTest to perform a Set "ON" method for all objects that fit the description: HTML TAG = input, TYPE = check box.

There are two types of programmatic descriptions. You can either list the set of properties and values that describe the object directly in a test statement, or you can add a collection of properties and values to a Description object, and then enter the Description object name in the statement.

Entering programmatic descriptions directly into your statements may be the easier method for basic object-description needs. However, in most cases, the Description object method is more powerful and more efficient.
作者: liangjz    时间: 2008-7-28 00:45
我们现在都采用类 描述性编程了
作者: sihanjishu    时间: 2008-8-13 16:26
你可以在函数编写里,传入一些通用的对象,比如winobject。这样就可以通用了吧。
作者: ylm77ojn    时间: 2008-8-17 01:35
我也有这问题,对象库里对象太多了的,维护很费力
作者: yuexiaoshuo    时间: 2010-2-9 21:16
喜欢你的头像!!1





















九鼎记 阴阳冕最新章节 阴阳冕 九鼎记 斗罗大陆 重生之官路商途 猎国 斗破苍穹 阴阳冕 凡人修仙传 陈二狗的妖孽人生 星辰变 大魔王  长生界 快眼看书列表 阳神 凡人修仙传全文阅读流氓老师傅 武神  十方天士 修真研究生生活录 御医 盘龙 七界传说 近身保镖 很纯很暧昧 步步生莲 网游之纵横天下 间客 死亡开端 寂灭天骄 卡徒 未来军医重生之官道 仙逆 凌天传说 九鼎记全文阅读 九鼎记最新 斗破苍穹最新重生之官道最新步步生莲最新间客最新 寂灭天骄最新 很纯很暧昧最新 御医最新 阳神最新 大魔王最新  长生界 快眼看书列表 盗墓笔记最新 网游之纵横天下最新 凡人修仙传最新 凌天传说最新七界传说最新 猎国最新 重生之官路商途最新 近身保镖最新 斗罗大陆  陈二狗的妖孽人生最新神墓最新 卡徒最新 阴阳冕最新 七界传说最新  星辰变最新 阴阳冕全文阅读 网游之纵横天下 快眼看书 凡人修仙传 快眼看书 很纯很暧昧 快眼看书 阳神 快眼看书 九鼎记 快眼看书 阳神 快眼看书 斗破苍穹 快眼看书 重生之官道 快眼看书 步步生莲 快眼看书 神墓 快眼看书 间客 快眼看书 大魔王 快眼看书星辰变 快眼看书 御医 快眼看书 长生界 快眼看书列表 陈二狗的妖孽人生 快眼看书猎国 快眼看书  阴阳冕 快眼看书 凌天传说 快眼看书 七界传说 斗罗大陆 玄幻魔法 玄幻魔法 武侠修真 武侠修真 重生之官路商途 快眼看书 卡徒 快眼看书 近身保镖 快眼看书 寂灭天骄 快眼看书 异界九死神功全文阅读 神墓




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