使用 RFT 和 AOP 相结合测试 SWT 应用程序

发表于:2008-6-06 10:31

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

 作者:宋政君 余晓峰    来源:51Testing软件测试论坛

        IBM Rational Functional Tester(RFT)是由 IBM 推出的针对 Java、.Net 和 Web 应用程序的自动化测试工具。借助这一工具,测试人员可以轻松地录制或编写脚本来进行自动化测试,极大地提高了测试效率。但是 RFT 目前不能捕捉到 SWT(Standard Widget Toolkit) 应用程序的对象,不能录制 SWT 应用程序的任何动作。本文介绍了一种解决方法,能够使 RFT 捕捉到 SWT 应用程序的对象,并且采用 AOP(Aspect Oriented Programming)后编译时(Post-Complier weave)的方式把它注入到 SWT 应用程序中。该方法无须更改 SWT 应用程序的源代码,减少了开发代码与测试代码的耦合,在基于 SWT 应用程序的测试中有广泛的应用前景。
1. RFT 及 SWT 简介

        本文主要介绍如何用 Rational Functional Tester(RFT)工具测试 SWT 应用程序,因此本节首先简要介绍一下 RFT 和 SWT。

RFT 介绍

        RFT(IBM® Rational® Functional Tester)是 IBM 公司研发的一个面向对象的自动测试工具,提供了自动化测试 Java 程序、Web 应用、Eclipse 以及终端应用的解决方案。您可以通过捕捉对象,记录用户操作的过程的方法,动态的生成测试脚本,然后在不断的回放测试脚本自动测试应用程序,提高测试效率。图 1 所示的就是 RFT 对象映射编辑器,从图中可以看出,这些被录制工具加进来的对象组成了树形的结构,每一个对象都有相关的识别属性。例如图中高亮显示的 Button 对象,它的 .class 属性值为 javax.swing.JButton,说明这个对象是 Swing 库的按钮组件。它还有其他属性,每个属性的值后面都跟有权重值,权重值对测试程序运行过程中对象识别非常重要。


图 1. 对象映射编辑器

图 1. 对象映射编辑器

SWT 介绍

        SWT(Standard Widget Toolkit)标准窗口小部件工具箱,编程人员可以使用它来开发适用于 Eclipse 环境的图形用户界面(GUI)以及开发单独的 GUI 本机应用程序。SWT是 一个库,它创建了 Java 版的本地主机操作系统 GUI 控件,依赖于本机实现。这意味着基于 SWT 的应用程序具有以下几个关键特性:

  • 它们的外观、行为和执行类似于“本机”应用程序。
  • 所提供的窗口小部件(widget)反映了主机操作系统上提供的窗口小部件(组件和控件)。
  • 主机 GUI 库的任何特殊行为都在 SWT GUI 中得到反映。

        本文介绍一个 SWT 应用程序,代码如清单 1 所示,本文读者应该熟悉 SWT 的知识,因此对代码不做解释,完整代码可以从本文下载部分下载。


清单 1.

public class Calculator extends Composite {
	public Calculator(Composite parent, int style) {
super(parent, style);
	}
	private CalculatorModel model = new CalculatorModel();
	private Text lcd = new Text(this, SWT.BORDER | SWT.RIGHT);
省略……
	public static void main(String[] args) {
		Display display = Display.getDefault();
Shell shell = new Shell(display);
		shell.setText("Calculator");
		shell.setLayout(new FillLayout());
		Calculator cal = new Calculator(shell, SWT.NONE);
		cal.init();
		shell.pack();
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
		display.dispose();
	}
}

        编译并导出为calculator.jar文件,运行calculator.jar结果如图 2 所示,这是一个计算器的 SWT 应用程序。

51/512345>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • dreamever
    2008-6-06 12:03:44

    这个方法是很好,但是有一个问题:如果我们要这样做的话,是否意味着开发人员在写代码时,必须考虑和RFT的兼容性?

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号