1、对象库1.对象的命名在实际的操作过程中,针对相同名称的对象,QTP 以 对象名 _1, 对象名_2 的形式表示,这样,如 BROWSER 下出现很多 page 同名的现象,此时就需要更改名称更改方法:2.对象属性的维护我们经常会遇到需求发生变更之后,对象的属性值修改了,那么在回放的时候因为找不到实际对象和仓库对象的属性的匹配项,导致了找不到对象或则找错了对象,这样通过修改对象的属性值达达到回放成功的目的修改对象的属性值,在上图的 value 一栏中修改就可以了3.对象的结构整理可以将测试对象进行分类,可以使用复制,粘帖,重命名的操作,如按照功能点进行分类,如下是录制后的结构图修改成如下:如上图
2、,修改之后,专家视图中的对象名也做了相应的变化。回放之后,发现回放成功。4.添加新对象手动添加对象可以这样操作:然后选择要添加的的对象注意:如果要添加的对象被其他窗口遮住,只需要在抓捕对象的时候,把手型光标定位在要被捕捉的窗口,停留一段时间。就可以把窗口激活,显示到前面。停留的的时间可以在 tools-options 中设置,如图:要添加的对象需要进行某些动作才能显示出来,操作时间,需要按住 ctrl 键,松开CTRL 键,再捕捉对象。如果含有多个对象,系统会提示让选择,如果是父类对象,系统会询问是否同时选择其下的子类对象5.对象库的合并1),对象库的保存,对象库保存会以 tsr 的格式保存在
3、本地。1、 对象的合并脚本 1 的对象库脚本 2 的对象库步骤 1:把脚本 1 的对象库和脚本 2 的对象库以 tsr 的形式导出步骤 2:在 resource-Object Repository Manager 选择 Tools-Object Repository Merge Tool, 弹出新建合并的窗口选择要合并的对象库,点击 OK 即可如何导入对象库答案:选择 resource-Assiciate RePositoies,选择保存好的 Tsr 文件将各种对象合并之后,生成一个大的公共对象库,供所有的脚本调用。即对象库的共享步骤 1:生成 tsr 文件步骤 2:合并对象库步骤 3:共享对
4、象库(resource-Assiciate RePositoies,选择保存好的 Tsr 文件)注意:对象库是针对 Action 的,如图,如果把在 Action1 里边的脚本放到 Action2 中那么,脚本会回放不成功。在关键字视图中,Action2 中,对象是以问号的形式显示的。6.用户自定义对象QTP 根据 Windows 标准类名来判断对象的类型。如果在被测程序中没有使用 Windows 标准类名,那么 QTP 在识别时可能会产生错误。例如图 3-9 中黑框标出的勾选控件,它实际上是一个 CheckBox 控件,但当我们用对象监视器去查看它时,发现 QTP 将它识别为WinObjec
5、t,如图 3-10 所示。这是因为 QTP 并没有将它识别成标准测试对象类。图 3-9.对话框中的勾选控件图 3-10.CheckBox 被识别成 WinObject因而,我们需要在设置中添加这种对象与标准类之间的映射关系。打开 Tools Object Identification。在 Environment 栏选择 Standard Windows。然后点击下方 User-Defined 按钮。在弹出的 Object Mapping 对话框中,点击手型按钮,然后再点击我们图 3-9 中的CheckBox。选择将它映射为 CheckBox 后,点击 Add。让我们再次用对象监视器查看此对象。
6、图 3-11.用户自定义对象类映射关系结果如图 3-12,QTP 已经将对象正确识别为 WinCheckBox。7.对象监视器(Object Spy)对象库监视器用于监听对象自身的属性和方法。启动方式有 3 种。1, 点击菜单栏 Tools Object spy。2, 点击工具栏上的 图标。3, 点击对象库管理工具的 图标。点击 按钮后,自由选择被测对象。选择 下方会显示出所有 TO 的属性和方法列表。图 3-6.TO 属性和方法选择下方会显示出 RO 的属性和方法列表。 大多数的属性都可以通过 GetROProperty 的方法来获取。下来代码示例如何通过脚本返回特定的 RO 对象属性:Ge
7、t the outer html of the webeditsOuterHTML = Browser(“).Page(“).WebEdit(“).GetROProperty(“outerhtml“)Note:对象监视器不会显示出所有原始的对象属性,一些特殊属性例如 CreationTime、index 或 Location 只有在对象被添加到对象库中后才会被定义。图 3-12.用户自定义对象被识别成 CheckBox8.对象识别原理对象识别是测试执行过程中至关重要的一个环节。实际就是关系到 QTP 如何依据当前代码与对象库,从被测程序中找到相应的对象。QTP 在录制对象属性时, 并不是任意录
8、制所有属性,而是按照 QTP 内部设置好的对象属性组合录制。例如,对于一个 WebCheckBox 控件,QTP 通常只录制 Html tag、name 、type 这 3个属性的值。我们可以通过修改设置来改变录制时的对象属性组合,从而满足测试的需要。从菜单 Tools Object Identification 进入。QTP 根据 3 种不同类型的属性来识别对象: 强制类属性 通常这类属性都会完整的保存到对象库中,尽管某些属性在识别对象时不总需要使用到。 辅助类属性 如果通过强制类属性也无法唯一确定一个对象,QTP 就会安顺序依次添加辅助类属性,直到可以唯一确立对象为止。 序号类属性 如果通
9、过强制类属性和辅助类属性都无法唯一确定对象,QTP 会根据序号类属性再次识别。序号类属性分 3 种:CreationTime、Location、Index。图 3-8.对象属性设置图 3-8 中显示的是 WebCheckBox 控件默认的强制类属性组合。Note:以上设置与脚本无关,而是关系到 QTP 在录制和识别对象时所需的属性,根据需要来增加或减少。Smart Indentification如果在对象库里面,对某个对象的 Smart Indentification 设置为 True,那么 当根据 Descriptive Properties 无法找到一个完全相匹配的对象时,QTP 就会启动 Smart Indentification 去寻找类似的对象