首页 测试 工具 查看内容

QTP:关于对象识别的一点心得

2014-9-1 00:44| 发布者: | 查看: 476| 评论: 0

摘要:   一、了解测试对象模型  (1) QuickTest识别对象的方法:  首先,它将“观看”您要录制的对象,然后将其作为测试对象进行存储,确定该对象符合的测试对象类。  QuickTest 也会对测试对象进行分类,例如, ...

  一、了解测试对象模型

  (1) QuickTest识别对象的方法:

  首先,它将“观看”您要录制的对象,然后将其作为测试对象进行存储,确定该对象符合的测试对象类。

  QuickTest 也会对测试对象进行分类,例如,标准 Windows 对话框(Dialog)、Web 按钮 (WebButton) 或 Visual Basic 滚动条对象 (VbScrollBar)。然后,对于每个测试对象类, QuickTest 都有一个始终要记住的强制属性的列表

  (2) QuickTest 通过记住和标识测试对象及其预期的属性和属性值,对动态更改的应用程序进行测试。

  (3) 在录制期间, QuickTest对应用程序中每个对象进行分析。

  (4) QuickTest首先观察录制的对象是否符合测试对象类,对每个测试对象类,QuickTest都有一个始终要记住的强制属性的列表,录制对象时,QuickTest始终会记住这些默认的属性,然后检查这些属性是否足以构成识别该对象的唯一标志,如果不足以进行唯一标识,QuickTest将向描述中添加辅助属性,直到构成唯一标志为止。。如果没有可用的辅助属性,或者那些可用的辅助属性仍不足够创建一个唯一的描述,QuickTest 将添加一个特殊的顺序标识符(例如页面上或源代码中对象的位置)以创建唯一的描述,正如图片中的两个孩子是一对双胞胎时, Jonny 要记注孩子在野餐毯上的位置一样。

  二、应用测试对象模型概念

  (1) 测试对象模型是一大组对象类型或类, QuickTest 用这些对象类型或类来表示应用程序中的对象。每个测试对象类都有一个可以唯一标识属于该类的对象的属性列表,以及一组 QuickTest 可以对其进行录制的方法。

  (2) 测试对象是 QuickTest 在测试或组件中创建的用于表示应用程序中的实际对象的对象。QuickTest 存储有关该对象的信息,这些信息有助于它在运行会话期间标识和检查该对象。(可理解为一个虚拟的对象,是经过QuickTest解析后的对象)

  (3) 运行时对象是网站或应用程序中的实际对象,在运行会话期间执行针对该对象的方法。

  (4) QuickTest在录制脚本时候执行的对象操作步骤:

  首先:标识QuickTest测试对象类(表示执行了操作的对象),并创建相应的测试对象。

  其次:对取应用程序中对象的属性以及属性值,并和测试对象一起存储

  再次:建立一个可以识别的唯一标志,通常是对象的某一重要属性

  最后:利用适当的QuickTest的测试对象方法录制对象执行的操作

  例如:单击[查找]按钮

  <Input type="submit" name="FIND" value="Find">

  QuickTest首先会将单击的这个对象标识为WebButton测试对象,它将创建一个名为Find的WebButton对象,然后为该WebButton对象录制属性和属性值,以及执行的click操作:

  type:submit

  name:Find

  html tag:input

  Browser("Mercury Interactive").Page("Mercury Interactive").

  WebButton("Find").Click

  (5) 运行测试或组件时, QuickTest 通过其测试对象类及其描述(一组用于唯一标识该对象的测试对象属性和属性值)来标识应用程序中的每个对象。测试对象及其属性和属性值的列表存储在对象库中。在上例中, QuickTest 将在运行会话期间在对象库中搜索 WebButton 对象,通过名称 Find 来查找其描述。QuickTest 根据找到的描述,在应用程序中查找 WebButton 对象,该对象带有 HTML 标记INPUT、类型为 submit、值为 Find。找到对象后,它将对其执行 Click 方法。

  三、了解测试对象和运行时对象的属性和方法

  (1) QuickTest 创建并维护每个测试对象的测试对象属性集。对象创建者创建并维护每个运行时对象的运行时对象属性集。(Microsoft 负责 Internet Explorer 对象, Netscape 负责 Netscape 对象,产品开发人员负责 ActiveX 对象,等等)。

  (2) 测试对象方法是您在录制时针对对象执行而由 QuickTest 识别和录制的方法,也是您在运行测试或组件时由 QuickTest 执行的方法。

  (3) 运行时对象方法是对象创建者定义的应用程序中对象的方法。可以使用 Object 属性来访问和执行运行时对象方法。

  (本人理解:首先QTP会将应用程序中的对象(可理解为运行时的实际对象)解析为自己的对象,也就是创建测试对象,然后会将应用程序中对象的属性以及属性值记录下来,跟测试对象一起存储到对象库,并且确立一个可以唯一标志该对象的属性,在回放的时候会到对象库中根据该唯一属性查找相应的对象进行测试。如果找不到唯一标识的属性或者找到多个属性相似的对象,QTP会采用“智能识别”法来分辨对象,如果“智能识别”法也不能用,那就会报'Cannot identify the object(对象名称)...'的错咯^_^不知道这样理解对不对,请各位指正哈,万分感谢,呵呵。

版权声明:本文出自qicyt1812的51Testing软件测试博客:http://www.51testing.com/?113838

原创作品,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明,否则将追究法律责任。


鲜花

握手

雷人

路过

鸡蛋

扫一扫关注最新动态

毒镜头:老镜头、摄影器材资料库、老镜头样片、摄影
爱评测 aipingce.com  
返回顶部