首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

谈 Dojo 应用的 UI 自动化测试(3)

谈 Dojo 应用的 UI 自动化测试(3)

IBM 框架IBM 框架以前被称作为 ITCL 框架,由质量软件工程(Quality Software Engineering) 和 IBM 中有经验的自动化团队合作开发而成的。这个框架由三层架构组成,架构的实现贯穿了应用对象、任务和测试用例包(IBM 包)。
潜在于应用对象、任务和测试用例包之下的基本原理是:
  • 层次化的体系架构
  • 将“做什么”与“如何做”分离开来
  • 代码重用
  • 一致和清晰的组织结构
  • 快速增强的能力
  • 迅速的调试
  • 有效地组织文件
  • 启用协作
  • 学习他人
下面是对应用对象、任务和测试用例的解释说明:
  • 应用对象:储存有关你的应用程序中的 GUI 元素信息。同时在这里也可以编写你的 Getter 方法,这些 Getter 方法可以返回对象,使调用者能够对这些 GUI 元素进行查询和操作。一般情况下,这些方法在 Task 层中进行调用。
  • 任务:在这里你将编写可重用的方法,这些方法在你的应用程序中执行通用功能。同时在这里,你将编写可以处理和查询复杂的特定应用程序控件的方法。在任务中的方法可以被测试用例调用。
  • 测试用例:导航一个应用程序,验证其状态,并记录其结果的方法。
这个理念应用到 Java 编程就是用不同“包”组织应用对象、任务和测试用例的类。无论具体的底层 Web UI 自动化测试框架是什么,用 IBM 框架的理念来架构上层测试用例的类都是有帮助的。 采用 IBM 框架能够有效地应对挑战 E,因为高重用性能够将代码改动控制在局部范围,并且一处改动即可纠正所有引用的代码。除了采用 IBM 框架,实际上如何合理地规划任务方法的粒度也很关键。但,这与具体应用就十分相关了。
代码生成一般来说,编写用来获取界面元素的代码(也就是应用对象层的代码)在整个开发工作量中占据很大的比例。通常,它需要开发者先借助一些能够显示 DOM 树结构的工具(比如 Firebug)观察元素的属性,然后决定用什么属性来定位元素比较合适。 另外,一些代码又是比较“机械”或者模式化的,例如给界面元素赋值的操作。这样的代码应尽可能的通过一些自动化的方式生成,就可大大节省开发的时间。
在 Water Bear 中,针对以上的两个问题,分别开发了两种代码生成工具。
一个工具叫 AppObjs CodeGen,它可以自动遍历当前的 DOM 树,从而生成应用对象层的代码。它用 Sahi 脚本实现,将结果输出在它的日志窗口中(如图 4)。 开发者将代码复制到自己的类文件中即可。尽管这些代码仍可能需要一些手工修改,比如重命名以增强方法的可读性,但较之完全用手工编码已节省很多时间。
图 4. AppObjs CodeGen 生成结果第二个工具叫 Skeleton CodeGen。 它的输入是应用对象层的类,输出是任务和测试用例层的部分代码。对于符合特定模式的以及界面有很多 UI 控件的 Dojo 应用,这个工具比较有效。生成代码仍需要二次修改,因为有些逻辑无法自动生成。
返回列表