在测试运行期间标识对象
相关项: GUI 测试和组件
在运行会话期间,UFT One 会像人那样采用类似的技术来识别对象。
UFT One 如何在运行时查找对象
假设继续进行UFT One 如何识别对象中所述的实验,现在要求 Alex 在新的、但类似的环境中标识最初标识的相同“项”。
向他出示的第一张照片是原来的照片。他寻找那个之前要他记住的八岁左右、有一头棕色长发的白人女孩,并马上认出她来。在第二张照片中,孩子们在游乐设施上玩耍,但 Alex 仍然能够根据同一标准很容易地认出那个女孩。
同样地,在运行会话期间,UFT One 会搜索与它之前识别的测试对象描述完全匹配的运行时对象。它希望找到与在识别对象时用于创建唯一描述的强制属性和辅助属性完全匹配的对象。只要应用程序中的对象没有明显更改,所识别的描述几乎总是足以让 UFT One 唯一识别对象。这对于大多数对象是适用的,但是在后续运行会话期间,应用程序可能会包含较难识别的对象。
例如,告诉 Alex 他必须认出照片上多棵树中的具体一棵树,并且要从另一角度所拍摄的照片中再次认出那棵树。如果关于树本身的标识信息不够清楚,那么他可能会注意那棵树与其他固定事物的相对位置,如与附近的路灯柱或野餐桌的相对位置。于是,即使后来他所看到的照片是从不同角度拍摄的 (只要所有必需的事物仍然在照片中可见) ,他也能够再次认出那棵树。
这类似于可视关系标识符属性,通过该属性,UFT One 可以根据测试对象在应用程序中的相邻对象识别出测试对象。使用该属性将不够稳定的测试对象与更独特的测试对象联系起来,并且只要应用程序中的那些对象与测试对象之间保持着一定的相对位置,即使应用程序中发生了可预见的用户界面更改,UFT One 也仍然能够识别该测试对象。
思考 Alex 那个实验的最后阶段。在该阶段中,测试者向 Alex 出示了另一张同一家庭在同一地点拍摄的照片,但是孩子都长大些了,并且还有更多孩子在游乐场上玩耍。Alex 首先寻找具有他在另一些照片中识别该女孩时所使用的特征的女孩 (测试对象) ,但是这张照片中的白人女孩都不是棕色长发。幸运的是,在上周第一次看见照片时,聪明的 Alex 就记住了关于那个女孩外貌的一些其他信息。即使那个女孩现在把头发剪短了并且染成金色,他也能够认出她 (运行时对象) 。
他是如何做到的呢?首先,他会思考哪些特征是他必须找到的。Alex 知道他仍然在寻找一位白人女性,而如果他不能找到符合这一描述的人,他会认定她不在照片中。
在他将可能性限定在这张新照片中的四位白人女性后,他会思考曾用于识别该女孩的其他特征 —— 她的年龄以及头发的颜色和长度。他知道已经过去了一段时间,即使仍然是同一个人,某些他所记得的其他特征也可能发生了改变。
因此,既然没有任何深色长发的白人女性,他便忽略这些特征,而通过他记住的眼睛和鼻子的特征来寻找符合的人选。他找到了眼睛相似的两个女孩,但其中只有一个具有小巧的鼻子,这是他从原来的图片中记住的特征。即使这些并不是明显的特征,他也能够认出这个女孩。
即使识别的描述不再准确,UFT One 也能通过其智能标识机制使用非常相似的排除过程来识别对象。即使描述属性的值发生更改,UFT One 也能通过使用“智能标识”来标识对象,从而维护测试或组件的可重用性。有关智能标识的详细信息,请参见配置对象标识。
本
描述属性与运行时属性
UFT One 使用唯一术语来区分测试对象和运行时对象的属性与操作。
测试对象 |
运行时对象 |
---|---|
描述属性是特定于 UFT One 的属性,UFT One 会使用这些属性来标识应用程序中的对象、检索和存储有关这些对象的信息,或者比较已存储的值与应用程序中对象的当前值。 可用于测试对象的描述属性由其测试对象类决定 (而不是由可用于应用程序中对象的实际属性决定)。 |
本机属性是由每个运行时对象的对象创建程序创建的属性。(对象创建程序的示例包括 Microsoft for Microsoft Internet Explorer 对象和用于 ActiveX 对象的产品开发程序。) |
测试对象操作是 UFT One 可对属于特定测试对象类的对象执行的方法或属性。 示例: UFT One 可以对 WebButton 测试对象执行 Click 方法。 |
本机操作是由对象创建者为应用程序中的对象定义的方法。 |
定义运行时属性
可以通过多种方式查看和修改测试对象和运行时对象的属性与操作:
-
使用对象侦测器的“操作”选项卡来查看任何可见对象的本机操作的语法。有关详细信息,请参阅 使用对象侦测器。
-
通过添加 GetROProperty 语句在测试运行期间从运行时对象检索本机属性值。有关详细信息,请参阅检索和设置值。
-
如果可用的测试对象操作和描述属性未提供所需的功能,则使用 Object 属性或 Web 对象的 attribute 对象属性来访问运行时对象的内部操作和本机属性。有关详细信息,请参阅本机属性和操作和《UFT One Object Model Reference for GUI Testing》的 Common Methods and Properties 部分中的 Object 属性。
注释: 使用 UFT One 根据对象的外观在应用程序中识别的图像识别测试对象或文本测试对象时,UFT One 不会使用该对象的编程接口,因此本机操作和属性不相关。