快速业务通道

追求代码质量 - 使用TestNG-Abbot实现自动化GUI测试 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

追求代码质量 - 使用TestNG-Abbot实现自动化GUI测试

时间:2010-12-09 IBM Andrew Glover

使用Swing、AWT 和类似的技术构建用户界面通常会给开发人员进行测试带 来挑战,原因如下:

底层图形框架的复杂性

GUI 中表现形式和业务逻辑之间的耦合

缺乏直观的自动测试框架

当然,前两个原因并不新鲜 —— 图形框架本来就很复杂,而且向 GUI 应用程序添加业务功能总是会给测试造成麻烦。另一方面,过去几年中有许多方便的框架涌现出来,确实使 GUI 测试更加便利。

本月,我将介绍一种新的框架,它极大地减轻了 GUI 测试的痛苦。

TestNG-Abbot 简介

TestNG-Abbot 源自于两个成功的开发人员测试框架的结合:Abbot 和 TestNG。Abbot 是一种 JUnit 扩展框架,主要目的是使 GUI 组件实现编程隔离 ,它还提供了一种验证 GUI 行为的简易方法。举例来说,可以使用它来获取对 按钮组件的引用,使用编程的方法点击按钮,然后检验其操作。Abbot 还附带了 一个脚本记录器,使用它就能够以 XML 格式布设测试场景,可以通过编程的方 式运行它。

在本系列中,我已经介绍了一些关于 TestNG 的内容,这里将继续介绍 TestNG。基本上,TestNG 是 JUnit 的一个替代物。除了所有预期的功能外,它 还增加了一些额外功能。正如我在其他文章中提到的一样,TestNG 特别适合于 更高层次的测试,其中,它可以用来测试依赖关系并只返回失败了的测试 —— 简而言之,在测试 GUI 时,这类型测试非常方便。

它的起源就如此让人印象深刻,所以 TestNG-Abbot 成为测试工具中的神童 就没什么好奇怪的了。同 Abbot 一样,TestNG-Abbot 使 GUI 组件能够进行编 程隔离。同时,它使用了 TestNG 的断言,将 GUI 操作细节提取到了简单的fixture 中,后者能够公开验证方法。如能正确使用,TestNG-Abbot 的直观的fixture 类能够使 GUI 测试如同从小男孩手里偷一块糖一样简单。(当然,您 不会想那么干的!)

直观的fixture 类

TestNG-Abbot 的当前版本支持七种 fixture 类型,其中一种类型用于操作 按钮、菜单标签以及文本项组件,如文本字段。此外,这些 fixture 类型根据 名字在逻辑上链接到了测试中的代码(即 GUI 组件)。这使得 GUI 和其测试实 现了松耦合,这样做至少有以下两个好处:

测试不会依赖于特定位置的GUI 组件 —— 这样无需中断测试就可对其进行 移动。

可以在早期进行测试,并且不会受到开发期间布局和外观改变的影响。

虽然目前只支持七种 fixture 类型,很快就会支持其他 fixture 类型。更 多的fixture 类型只会增加 TestNG-Abbot 在编程验证 GUI 方面的高效性。

GUI 验证不再普通!

虽然 TestNG-Abbot 使得验证 GUI 的过程更加简单,这并不意味着这个过程 很简单。必须使 GUI 测试区别于单元或组件测试。验证 GUI 中业务规则的过程 变成了对用户场景进行验证;或者,换种说法,GUI 测试包括验证可见状态的改 变。

比方说,如果按下了定单输入 GUI 上的保存按钮,业务规则会保证命令的内 容被保存到数据库中。然而,在一个用户场景中,会保证成功的状态信息被插入 了按钮下 —— 这正是使用TestNG-Abbot 能够编写的测试。事实上,如果 GUI 设计良好的话,可以测试被保存到数据库中的命令内容而无需 测试 GUI。接着 您还可以同时并及早地编写这两个特别的测试。

加油!

记住 TestNG-Abbot 并不妨碍端对端测试(end-to-end)。可以轻 松将 TestNG-Abbot 和 DbUnit 结合在一起,比如,创建一个同时验证用户场景 和业务规则的可重复测试。

追求代码质量 - 使用TestNG-Abbot实现自动化GUI测试(2)

时间:2010-12-09 IBM Andrew Glover

Word Finder GUI

为了使您了解 TestNG-Abbot 工作原理,我

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号