Chinaunix首页 | 论坛 | 博客
  • 博客访问: 734719
  • 博文数量: 769
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4985
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:37
文章分类

全部博文(769)

文章存档

2011年(1)

2008年(768)

我的朋友

分类:

2008-10-15 16:44:20

        IBM Rational Functional Tester(RFT)是由 IBM 推出的针对 、 和 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 公司研发的一个面向对象的自动测试工具,提供了自动化测试 程序、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 应用程序。

【责编:michael】

--------------------next---------------------

阅读(307) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~