1.5.6 对象库的最高指挥官(Object Repository Manager)
1.5.6.1 使用公共对象库更有利于项目管理
对于使用QTP的自动化测试项目来说,其对象库的管理在整个自动化测试过程中占有非常重要的地位。特别是对于一个大型的应用系统,往往界面上的对象多而杂,所以拥有一个统一、规范、直观、有序的对象库将非常有利于脚本的快速开发以及团队成员间的协作。在前面的小节中已经深入介绍了Object Repository,不过这只能说已经掌握了单兵作战的技巧,在真实的自动化测试项目运用中,我们需要的是整个团队的协作,只有这样自动化测试项目最终才能成功。如果选择对象库编程来完成所在的项目,那么如何管理好对象库将是一门很大的学问和最当务之急要研究、探讨的事情。
有幸的是,QTP提供了一套管理对象库的功能,由此也就产生了公共对象库的概念。那么,什么叫公共对象库呢?举个最简单的例子,假设系统中有3个模块,分别由3名自动化测试工程师负责,此3人在完成自己模块的脚本开发后,开始进行脚本联调,但是他们发现自己模块的脚本单独运行都非常完美而却在集成完毕以后发生了致命的错误,没有一个组合后的业务脚本能够顺利的通过。最后他们发现,导致如此的原因是因为,他们没有一个统一的对象库,比如有一个公共对象Browser(“browser”),3个模块都具备这么一个对象,但是3名工程师分别把它写成了Browser(“browser1”)、Browser(“browser2”)、Browser(“browser3”),对象的命名规范都没有统一,那最终集成到一起以后怎么可能没有问题呢?要想防止类似的问题发生,就必须管理好对象库,将凌乱而琐碎的对象进行统一管理,并集成到一个对象库中,所有工程师只在这一个对象库上进行脚本开发工作,因此也就产生了公共对象库这个名词!当然,作者也并不是说必须所有的对象全部集合在一个对象库中,但是至少(再次强调“至少”这两个字)模块间共有的对象必须提炼出来并统一命名,然后封装成一个供所有团队成员共享的公共对象库。这个公共对象库是不能随意变更的,必须有专人进行严格控制及维护,这个在本书的第一章中就已经讲过。另外,关于如何调用公共对象库,请读者复习“1.5.4 对象库基本操作”,这个小节中的第10点“Associate Repositories”,在这里就不再对这些知识点做重复性的阐述了。现在去认识对象库的最高指挥官Object Repository Manager吧。
首先,召唤Object Repository Manager的方法不像召唤Object Spy那样的多,既没有快捷键,也没有什么直接可以点击的图标,唯一的入口就是。
QTP上方菜单栏→Resources→Object Repository Manager。
点击进入后,界面效果如图1-115所示。
图1-115
从图1-115中可以看到Object Repository Manager中的很多可用功能和前面已经介绍过的Object Repository中的完全是同一个功能,在图1-115中,作者只是特别标注了个别几个。这些既然前面都已经介绍过,在这里就略过了。接下来,结合一个实例来介绍Enable Editing这个功能(图1-115中已标注位置)以及整个对象库管理的大致操作流程。