ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 使用 RFT 设计 Web 2.0 应用的 GUI 自动化测试框架

使用 RFT 设计 Web 2.0 应用的 GUI 自动化测试框架

原创 Linux操作系统 作者:myattitude 时间:2010-03-04 11:36:16 0 删除 编辑

转自:http://www.ibm.com/developerworks/cn/rational/r-cn-webtopguitestframework/index.html

近些年来,随着 Web 2.0 技术的大范围普及和广泛应用,在全球范围内出现了众多新颖的激动人心的软件产品或服务。在这些 Web 应用中,有一类主要的分支被称作 Web 桌面应用。Rational Functional Tester(RFT)是 IBM 提供的一款自动化测试工具,适用于各种测试工作,特别擅长于 GUI 方面的自动化测试。

本文借助在 Rational Functional Tester(RFT)平台下设计和开发 LotusLive Meeting 这个自动化测试项目,介绍了如何使用 Rational Functional Tester 设计 Web 2.0 应用的 GUI 自动化测试框架,并介绍自动化测试框架设计和开发中的一些原则和经验。

前言

近些年来,随着 Web 2.0 技术的大范围普及和广泛应用,在全球范围内出现了众多新颖的激动人心的软件产品或服务。在这些 Web 应用中,有一类主要的分支被称作 Web 桌面应用。例如,widgetop、cloudworks、eyeOS、Mygoya、Wixi 等。在 IBM 公司内部很多产品线也开始逐步开发出或者转移到 Web 平台。在 IBM 软件产品和服务中,具有 Web 桌面应用特点的产品也非常的多,像是 Domino iNotes,LotusLive Meeting,Sametime Meeting 等。作为 GUI 自动化软件测试人员或者框架及脚本开发人员,如何找到一种高效、稳定的并且是针对这种软件架构和产品特性的 GUI 自动化测试方法就显得尤为重要了。

Rational Functional Tester(RFT)是 IBM 提供的一款自动化测试工具,适用于各种测试工作,特别擅长于 GUI 方面的自动化测试。在 IBM 公司内部的各个测试组,例如 FVT、BVT、GVT,甚至是 SVT 都得到了广泛的应用。

本文借助在 RFT 平台下设计和开发 LotusLive Meeting 这个自动化测试项目,来介绍一下自动化测试框架设计和开发中的一些原则和经验。

Web 桌面应用及特点

随着 Web 开发技术的日新月异,很多 Web 应用都开始越来越注重用户的体验。其中 Web 桌面应用(Webtop)在很大程度上满足了用户日常使用桌面应用的习惯,在众多的新颖的 Web 应用中占有较大的比例。具有 Webtop 特点的 Web 应用一般具有以下的特点:首先从使用者的角度,如果我们没发觉它是运行的浏览器里面,那么它的用户体验更像是传统桌面程序。也就是说在使用过程中不像是其他 Web 应用要在相对较多的浏览器窗口之间或者页面之间进行跳转,而是一直维持着一个相同的浏览器窗口。UI 的变化都发生在同一个浏览器窗口对象内部。另外从技术角度上讲,浏览器窗口内的顶层 DOM 对象基本保持不变,很多 UI 的变化都是刷新或动态加载局部容器的来实现的。对于这类应用的特点,在做自动化测试脚本开发过程中可以加以利用,大大提高脚本的质量和执行效率。

ITCL 框架

ITCL 框架是 IBM 公司内部被广泛使用的自动化设计框架,也叫做 IBM 框架。主要的设计宗旨就是将代码划分成三层结构,即对象层(Objects layer)、任务层(Task layer)、测试用例层(Testcase layer)。将代码划分成三层结构使得“做什么“和”如何做“分离开来,有利于代码的组织,结构清晰。同时提高了代码的可复用性和扩展性。当使用 ITCL 框架开发自动化测试脚本时,最核心的任务就是合理的设计和组织对象层和任务层。合理的设计对象层和任务层常常会使整个自动化项目的开发和后期维护达到事半功倍的效果。本文的主要目的就是提供一套设计原则以及一些对象是别的经验,针对 Web 桌面应用程序的特点给出对象层设计的解决方案。以提到对象识别的准确性和稳定性,这一点对于 UI 经常变化的软件和 NVL 版本软件的国际化测试有特别重要的意义。

LotusLive Meeting 的框架设计原则

LotusLive Meeting 是一个典型的 Web 桌面应用程序,对于这类型的应用,最大的特点就是很多 RFT 可识别的对象是以树形结构组织并且结构较为固定。同时这些对象是在同一个浏览器窗口内被展现。针对于这样的特点我们可以借鉴树形结构搜索对象的一些基本方法,即从树根开始逐级遍历树的各个节点进行匹配,直到找到我们要操作的 GUI 对象。那么构成这棵树的节点是什么呢?这里我们就要说面一个 HTML 容器对象的概念。

HTML 容器对象

Web 应用说到底是基于 Web 技术,是基于浏览器的。那么不管目前主流的 Web 应用是以何种技术开发,使用的是何种平台,他们都依赖于最基本的 HTML 语言。我们可以发现,HTML 的作用主要是布局 Web 应用的展示层。也就是说 Web 应用的 GUI 布局主要是通过 HTML 的各种标记例如