测试对象模型
相关项: GUI 测试和组件
UFT One 通过识别和标识测试对象及其预期属性和值,测试动态更改的应用程序。为此,UFT One 将采用与某个人查看一张照片然后记住其细节类似的方式,分析应用程序中的每个对象。通过识别对象并对其进行分类,UFT One 会创建测试对象模型。
UFT One 如何识别对象
UFT One 像您那样识别对象。例如,假设在实验过程中,要 Alex 观察一张野餐场景照片几秒钟,在此期间,有人会指出照片中的一项。然后告诉他,希望他在一周之后从相同或类似的照片中再次认出该项。
在向 Alex 展示照片之前,他会思考要识别哪些特征,以此做好准备。显然,他会注意照片中是人、静物、动物,还是植物。然后,如果是人,他会记住性别、肤色和年龄。如果是动物,他会记住动物种类或其颜色。
测试者向 Alex 出示场景照片,并指出坐在野餐毯上的三个孩子中的一个。Alex 注意到她是一个八岁左右的白人女孩。此外,他会发现照片中的另一个孩子也符合该描述。除了了解计划了解的一系列特征外,他还注意到要识别的女孩有一头棕色长发。
既然照片中只有一个人符合他所了解的特征,则即使测试者在下周出示给他的照片略有不同,他也十分肯定能够再次认出该女孩。由于他仍然有时间看照片,于是为了以防万一,他会试着注意要记住的孩子与照片中其他孩子之间的其他更加细微差别。
UFT One 在识别对象时使用的方法非常类似。
首先,它会“观察”要识别的对象,并将其存储为测试对象,同时确定测试对象符合的测试对象类。UFT One 可能会将测试对象归类为诸如标准 Windows 对话框 (Dialog)、Web 按钮 (WebButton) 或 Visual Basic 滚动条对象 (VbScrollBar) 之类的对象。
然后,UFT One 会“考虑”测试对象的描述属性。对于每个测试对象类,UFT One 会列出其始终要识别的必要属性。UFT One 识别对象时,它通常会先识别上述默认属性值,然后“观察”页面上的其余对象、对话框或其他父对象,以检查该描述是否足以唯一标识对象。如果不行,UFT One 会在描述中逐一添加辅助属性,直到已编译唯一描述为止。如果没有任何辅助属性可用,或如果这些可用的辅助属性不足以创建唯一描述,则 UFT One 将添加特殊的序号标识符 (如页面上或源代码中对象的位置) 以创建唯一描述。
UFT One 如何使用测试对象模型
测试对象模型是表示应用程序中对象的对象类型或类的大型集合。每个测试对象类都具有 UFT One 用于识别对象的描述属性的列表、这些可唯一标识该类对象的属性的子集,以及 UFT One 可在对象上执行的一组相关操作。
示例: 假设您使用以下 HTML 源代码添加 Search 按钮:
<INPUT TYPE="submit" NAME="Search" VALUE="Search">
UFT One 会将对象识别为 WebButton 测试对象。在对象存储库中,UFT One 会创建名为 Search 的 WebButton 对象,并识别该对象的一组描述属性,然后决定使用以下属性和值来唯一标识 Search WebButton:
运行测试或组件时,UFT One 会根据对象的测试对象类及其描述 (用于唯一标识对象的描述属性和值的集合) 标识应用程序中的每个对象。
测试对象层次结构
UFT One 测试对象层次结构由一个或多个级别的测试对象构成。根据环境的不同,顶级对象可能会代表窗口、对话框或浏览器类型对象。您对其执行操作的实际对象可能会被识别为顶级对象、第二级对象(如 Window.WinToolbar)或第三级对象(如 Browser.Page.WebButton)。
如果应用程序中的某个对象嵌入到多个级别的对象中,则测试对象层次结构不包含这些对象。例如,如果应用程序中的 WebButton 对象包含在 Browser 和 Page 内的多个 WebTable 对象中,则识别的对象层次结构仅为 Browser.Page.WebButton。
可以潜在地包含较低级别对象的对象称为容器对象。对象层次结构中的所有顶级对象都是容器对象。如果第二级对象按 UFT One 对象层次结构包含第三级对象,则该对象也视为容器对象。例如,在步骤 Browser.Page.Edit.Set "David" 中,Browser 和 Page 都是容器对象。
定义对象属性
查看和修改测试对象的属性和操作:
-
在设计测试或组件时手动检索或修改值,或者在测试运行期间使用 SetTOProperty 语句。
有关详细信息,请参阅对象存储库中的测试对象、检索和设置值,以及《UFT One Object Model Reference for GUI Testing》的 Common Methods and Properties 部分中的 SetTOProperty 方法。
-
在函数库中使用正则表达式,以根据您定义的条件或模式标识属性值。有关详细信息,请参阅正则表达式。
-
在“对象属性”或“对象存储库”窗口中查看或修改与测试或组件一起存储的值。有关详细信息,请参阅维护对象存储库中的测试对象。
-
使用对象侦测器的“属性”选项卡查看任何可见对象的当前值。有关详细信息,请参阅 使用对象侦测器。