测试对象层主要用于识别待测应用程序的测试元素(按钮,文本框,下拉框,导航…),主要包括静态识别和动态识别两种方式。由于动态识别的灵活性和易维护性,复杂度较高的项目一般采用动态识别的方式来识别对象。动态识别是通过界面元素的特定属性(包括元素类型,层次结构等等)来识别对象。通过构建一个统一的界面元素识别入口 Object Finder,并在识别入口处插入 Logger 记录识别的结果,即可记录所有的界面元素识别情况:正确则在日志中显示 Pass,错误则显示相应的错误识别消息和元素的识别属性。日志框架通过对界面元素识别情况的记录可以迅速的帮助测试开发人员定位到由于界面元素识别失败而造成的失误,大大减少了调试时间。下面以 RFT 为例说明如何构建一个统一的识别入口以及如何使用 Logger 记录识别情况(本文仅针对自动化测试中最常用的动态识别)。
测试任务层主要基于测试元素进行各种操作,不同软件程序的业务逻辑虽然千变万化,但都基于一套标准的鼠标和键盘操作。无论业务逻辑多么复杂,都是基于鼠标点击,文本输入,界面导航实现的。根据自动化测试项目的这些特点,将鼠标键盘的原子操作提取出来作为 Common Task,并在 Common Task 里插入 Logger 记录原子操作的正确性即可实现对 Task 层的运行的监控。
本文在 ITCL 基础上,通过实现对统一的对象识别入口和原子操作入口的监控和日志记录帮助自动化测试开发人员在开发和维护时迅速的定位错误。
动态识别是通过 find 方法和属性找到相应的对象,页面元素的属性可以映射为一个以特定分割符分割的文本串。因此对于任意页面元素,定义好了其属性识别串,即可按如下方法来进行页面元素识别,以 findObjectByProperties 作为唯一对象识别入口,并在其中插入 Logger 记录识别结果。下图以页面登陆为例说明:首先在对象识别库中(Object Repository)以文本形式记录登陆框识别属性,在对象识别时找到相应的属性识别字符串,调用 setPropertyGroup 解析字符串为属性组,将属性组输入到 find 方法中查找返回对象。如果有相应对象,则 Test Logger 在日志中显示 Pass,如果没有识别到相应对象,则显示 Fail。
原文转自:http://www.ibm.com/developerworks/cn/rational/1611_xux_rft/index.html