对象在手,测试我有

大家别误会,这里说的对象可不是值指男女朋友,而是对被测控件的识别。经过昨天的录制,大家一定很奇怪为什么我可以做到精确的回放操作,这都要归功于对象,下面就隆重的介绍我在对象识别方面的强大功能。

初识对象库

打开上次录制的脚本record,点击【Resources】->【Object Repository】或按快捷键CTRL+R,打开对象库,如下图。

简单介绍下各个按钮的作用。

Test Objects:测试中用到的对象都在这里。

Checkpoint and Output Object:检查点和输出对象,平时项目中基本上用不到。

1:添加对象,手动添加需要的测试对象到对象库,如何添加后面会详细说明。

2:更新对象,由于版本的更迭导致对象变更时使用,具体步骤和添加对象相同,需要注意的是所更新的对象必须是相同类型的,不能把WebEdit更新曾Link类型。

3:定义新对象,使用频率不高,一般都直接添加对象。

4:对象高亮,使对象库中的对象在网页或程序上闪烁,可以达到定位的效果,检查对象添加的是否正确。

5:定位对象,检查被测程序上的对象是否已在对象库中。

6:对象侦探,无需添加对象到对象库就可以查看对象的属性,实际工作中用的最多的功能。

7:关联对象库,加载封装好的对象库,使用较多。

Object Properties:显示和编辑对象的具体属性。

添加对象

对象库是我最重要的功能,没有对象库就没有我现在的地位,而添加对象又是对象库中最重要的功能呢。为了看到手动添加的效果,我们先删除现有对象库的对象,右键点击对象删除之。

点击添加对象图标(图中1的位置),会出现一个白色小手,将白色小手移动到需要添加的对象上,这里先添加用户名输入框,单击后如下图。

单击后会出现一个对话框,同时显示要添加对象的父级对象,需注意,添加子对象时父级对象会自动添加至对象库。也就是说,如果我们选择WebEdit那么Page和Broswer也会一起添加至对象库;如果选择Page那么Broswer会被添加至对象库而WebEdit不会被添加,可以理解为向上兼容。好了,我们选择WebEdit进行添加,如下图。

按相同步骤添加邮箱、密码和登录按钮,因为他们都在同一页面上,会被直接添加在父对象Page下。

这时大家应该会发现,添加对象时我会自动为他们命名,当然名字也不是随便取的。以mail为例,注意看Object Properties部分,下面详细部分Description properties:type=text、name=mail、html tag=INPUT,看到这里有没有联想什么?还记得我们自己写的网页代码么?

<input type="text" name="mail"  class="user_input">

一目了然,这里的属性其实就是HTML标签的属性。如果觉得自动生成的名字看着不舒服,直接修改Object Properties中Name值就可以。将mail改为邮箱,password改为密码,username改为用户名,修改后可以看到脚本代码也自动更新了。  

我之所以能够识别各种各样的对象,是因为已经有了这些对象的身份证明,他就是Object Identification。

点击【Tools】->【Object Identification】,列出了可以识别的所有web对象,可以在注册表HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\Test Objects 查看,注册表里没有的Object Identification也不会有。Object Identification的配置一般不需要更改,了解即可。

对象侦探

自动化对象控件纷繁杂乱,工作中经常需要了解对象的内部属性,直接看源码费时费力,考虑到这点,我特地提供了对象侦探服务,可以方便的查看对象的属性。可以通过三种方式打开:

1.点击【Tools】->【Object Spy】

2.直接点击Spy图标

3.在对象库中点击Spy图标 (第一幅图片6位置)

具体如图所示

好了,拿用户名输入框练练手,Properties显示了相关的属性。

Operations是该对象可以使用的方法,在以后的对象库编程中会用到。

捕获对象时,若需要鼠标或键盘进行操作,按下CTRL+ALT可以进行输入,然后再按CTRL就可以捕获了。

关联对象库

顾名思义,可以将对象库封装为外部文件,成为公共对象库,供不同脚本使用。实现步骤:

1.导出现有对象库。CTRL+R打开对象库,点击【File】->【Export Local Objects】,选择保存文件夹。

2.为了突出效果,先删除现有对象库中的对象,然后点击Object Spy右边的图标。

3.点击【+】选择要关联的对象文件,将Action1移入Associated Actions,点击【OK】。

4.对象已被添加至Test Objects且是灰色不可编辑,若想编辑可以右键点击对象选择Copy To Local。

听说十遍,不如操作一遍,web对象五花八门,行踪飘忽,只有通过大量的实际操作才能逐渐摸透其中的原理。

下一次,将为大家介绍web相关的常用的对象,现在,洗洗睡了。

QTP自传之对象的更多相关文章

  1. QTP自传之对象库编程

    对象库编程是我们平时工作中使用最多的编程方式,在自动化脚本开发中起到举足轻重的作用,与描述性性编程相比,更直接和易于维护,今天就和大家简单的聊聊如何进行对象库编程. 既然是对象库编程,肯定要对已存在于 ...

  2. QTP使用dictionary 对象

    1. 创建即使用Dictionary对象 ' 创建Dictionary对象Set Dic = CreateObject("Scripting.Dictionary")' 添加Dic ...

  3. QTP自传之web常用对象

    随着科技的进步,“下载-安装-运行”这经典的三步曲已离我们远去.web应用的高速发展,改变了我们的思维和生活习惯,同时也使web方面的自动化测试越来越重要.今天,介绍一下我对web对象的识别,为以后的 ...

  4. 使用QTP测试Web对象

    加载Web插件先启动QTP,再启动浏览器,否则Web元素识别不了最新版本QTP11支持的浏览器:IE:6.7.8Firefox:3.0.x.3.5.QTP支持直接访问DOM(Document Obje ...

  5. QTP自传之初识

    我叫QTP,全名是HP Quicktest Professional,大家都叫我小Q. 小Q生于1998年,那是一个春天(哈哈咱也是跨世纪的人才).家里人丁兴旺,兄弟众多,L(Loadrunner), ...

  6. QTP自传之录制

    录制,是一件吃力不讨好的活.很多人以为录制就是我的主要甚至全部的功能,这是大错特错的.不过,录制功能却是不熟悉我的人了解我的有效途径,是大家学习的有力武器.今天就先从录制功能说起吧. 说到录制,就不得 ...

  7. [转载]使用QTP测试Windows对象

    Desktop对象的使用: 通过Desktop对象,可以访问Windows的桌面顶层对象.Desktop对象包括CaptureBitmap.ChildObjects.RunAnalog方法. (1)  ...

  8. QTP设置共享对象库

    第一步:把需要加到共享对象库中的各个用例脚本的对象库,分别导出成.tsr文件. 操作方法:先用QTP打开已经录制完毕的脚本后,选择Resources-->Object Repository.然后 ...

  9. QTP VBScript RegExp对象的运用

    下面来讲讲RegExp对象: Vbs提供了针对正则表达式的一个非常实用的类,就是RegExp Global属性:代表全局匹配 IgnoreCase属性:大小写忽略 Pattern属性:正则表达式 Ex ...

随机推荐

  1. Navicat Premium 自动备份mysql和sqlserver

    mysql篇: 1.点击计划 2.点击新建处理作业 3.选择需要备份的数据库,上级可用任务 4.点击保存按钮,输入保存文件名 5.保存后点击设置计划任务 6.计划里新建保存时间,应用后输入系统密码即可 ...

  2. sublime的js调试环境(基于node环境)

    很多的语言都有控制台,都要专门的ide,js,用sublime在node的环境下,可以配置console, 如何配置?首先,要有node的环境,下载安装,还要安装到c盘才行,然后找到'工具(tool) ...

  3. 给sqlserver配置内存参数

    操作环境:windows server 2003 R2 Enterprise Edition SP1 + 4G 内存 + Sqlsever 2005 在以上环境中,运行公司的ERP数据服务,sqlse ...

  4. vs2010 web 发布

    1.在服务器上安装web deploy,这时iis中右侧功能中就多了“导入应用程序” 2.在代码的项目中,点击项目属性,将debug改为release,选择对应的平台.目标平台,主要用来区分32位还是 ...

  5. .net RAW(16)与GUID互相转换

    .net 1.raw转guidnew guid(byte[] id);2.guid转rawGuid result;string ids = BitConverter.ToString(result.T ...

  6. Sprite Kit教程:初学者

    作者:Ray Wenderlich 原文出处:点击打开链接 http://www.raywenderlich.com/42699/spritekit-tutorial-for-beginners 转自 ...

  7. hdoj 4310 贪心

    不知为毛,过不了 我的代码: #include<stdio.h> int main(){ int n,a[30],b[30],temp,i,j,s1,s2; double c[30]; w ...

  8. Sql Server 时间格式

    问题引出: Sql Server 里 dateTime 数据类型,会精确到毫秒.如果我们 在插入一条数据的时候,使用 GetDate() 记录 这个记录插入的时间,则会插入当前时间,精确到毫秒.在查询 ...

  9. excel poi 文件导出,支持多sheet、多列自动合并。

    参考博客: http://www.oschina.net/code/snippet_565430_15074 增加了多sheet,多列的自动合并. 修改了部分过时方法和导出逻辑. 优化了标题,导出信息 ...

  10. ecshop 嵌入地图加载不了问题

    在ecshop 添加一个标识商家地理位置信息. 百度地图,加载不出来,查了下发现跟 js/transport.js 与 js/utils.js 两个文件有关在需要插入地图的地方去掉这两个文件的引用 地 ...