我们可以看到,QTP自动化测试的原理其第一步就和对象库产生了联系,具体到底是如何联系起来的呢?其实很简单,在QTP里有测试对象模型这一个概念,它把各种对象都分门别类起来,建立出一个个对象模型,然后用这些对象模型来表示Web页面中的对象,比如WebButton、WebList、WebElement等各种各样的对象。每个对象模型都有一个可以唯一标识对象的关键属性列表,我们将前面这些连起来一块说,就是在添加对象至对象库后,QTP自动建立被添加对象的对象模型,并给出一个默认识别标识。然后,每个对象模型都有一个可以唯一标识对象的属性列表,这个属性列表是可以设置的,它就是Object Identification,先认识一下它,如图1-50所示。
图1-50
如图1-50所示,可以看到这就是Object Identification的界面,开启它的方法是:
QTP上方菜单栏→Tools→Object Identification。
在Object Identification对话框中设置的属性在添加完对象后就可以在对象库中查看到。如果觉得这些默认显示的属性还不够或者有的默认的属性是多余的,可以进行手工设置,看一下实例,通过实例来看最终效果,需要再一次借用百度的搜索框,如图1-51所示。
图1-51
这是一个WebEdit控件,也就是一个WebEdit对象模型,等会作者把这个对象添加到对象库中,添加两次,第一次不改Object Identification中WebEdit对象模型的默认属性,第二次剔除其中一个属性,然后一起看看它在对象库中的属性列表显示情况。先来看默认的情况,如图1-52所示。
图1-52
图1-52中,作者标识了两个不同的区域Mandatory Properties和Assistive Properties。先知道它们的区别,Mandatory Properties就是对象模型的必要属性,这个区域设置的属性在实际被测对象与对象库匹配时,只要有一个属性不一致就报错。Assistive Properties就没有这个规矩了,并且QTP默认所有的对象模型在这个区域中没有任何属性。