一种基于SWTBot的GUI自动化测试框架

发表于:2011-4-12 10:10

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

分享:

图 4. 对话框封装的结构

  这个类封装了名称为 ExportWorkload 的对话框。它包含了对这个对话框里所有的控件的封装,并提供方法供测试用例调用。如果测试用例中需要点击 browse 按钮 (Button),那么相应的代码可以写成这样:

清单 3. 测试用例代码示例:点击 browse 按钮

  从上面的代码片段来看,测试用例中完全不用把按钮的名称写死在代码当中。 如果这个按钮的名称改变了,测试用例也不用做任何改变。这种处理的好处是显而易见的,测试用例的维护成本大大降低了。那么这些文字信息又是怎么处理的呢?我们把所有的文字信息进行集中管理,这里就要说到 constants 包了。这个包里存放的都是与已封装对象同名的 property 文件。与 ExportWorkloadDialog.java 对应的就是 ExportWorkloadDialog.properties。

图 5. Property 文件示例

  Property 文件以键值对的形式 (Key=Value) 保存组件对象中的文字信息。那么对一个特定文字信息的引用就只需要知道其对应的键名就可以了。类似的,如果产品中某个文字信息有了改动,我们可以很容易的找到它,而且只需要对一个地方修改。在这个例子中,对 ExportWorkloadDialog 及其包含的控件进行封装时就用到了这种方法,看下面的代码:

清单 4. 配置信息的使用示例

  变量 messageFile 定义了文字信息所存放的位置,也就是存放在 com.ibm.developerworks.constants 包的 ExportWorkloadDialog.properties 文件中。所以,在 button_browse() 方法中通过名称定位 browse 按钮时,就通过 UIConstants.getConstant(messageFile, “button_browse”) 来查找 property 文件中 button_browse 对应的键值“Browse …”,从而最终定位这个按钮。

  测试用例层,快速开发易维护的测试脚本

  测试用例层是开发并保存测试脚本的地方。通过调用组件层封装的对象和方法来实现测试功能,包括执行操作、断言等。进过工具层和组件层的准备,在这一层中开发测试用例就是一件很快速的事情了。同时,这种清晰的结构划分也保证了开发人员写出的测试脚本是逻辑清晰,易于维护的。SWTBot 的测试用例时基于 Junit 的。所以测试用例的结构和 Junit 一致,在此不再赘述。

  测试结果的分析和管理

  GUI 自动化测试中,导致测试用例失败的原因通常为找不到对象或者断言错误。所以测试用例除了要生成详细的日志 (Log) 之外,测试用例失败时的截屏 (Screen_Shot) 也是非常有价值的。通过截屏,熟悉产品的人可以很容易的找出出错的原因。

图 6. 截屏报告示例

  另外,通过 Junit 我们为每个 Test Suite 产生一份测试报告,最后汇总为一次测试的综合报告。

  小结

  GUI 的自动化测试一直是费力且困难的工作。但是如果实现了自动化测试,对于人力成本和时间的节省也是巨大的。

  SWTBot 是功能强大的 GUI 自动化测试工具。我们扩展了它的强大功能,并定义了结构清晰,分工明确,易于扩展的测试框架。通过这个基于 SWTBot 的 GUI 自动化测试框架,测试人员可以快速高效的开发出高质量的测试用例。希望本文的描述能给大家启发,起到抛砖引玉的作用。

33/3<123
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号