序言:基于RFT的swing界面的自动化测试,这里不是说怎么去使用工具,而是怎么将RFT融入到自动化测试设计中,其实RFT在整个设计中,个人觉得,只是一个辅助的角色,如果时间允许的话,谁也不想用这么昂贵还这么不灵活的RFT,接下来,你读完这个系列后,你知道为什么我这么说了。

  一、简易自动化测试架构说明

  很多人都应该了解了GUI自动化测试的通用架构划分如下:

  1、对象层AppObject,存储基于find()搜索控件的具体方法,我分成了两大类,一类是通用的基本java控件、一类的不同产品线的相应的自己拓展的控件类。

  2、方法层AppLib,存储简单的操作函数,在这里,我分成了两大类:Lib与Method类,Lib类用于对象的基本操作方法,Method类存储用于一些基本的自己拓展的操作方法,例如:外部文件读写操作、日志写出操作、模拟键盘鼠标操作(Robot类拓展)等。

  3、用例层AppCase,调用测试方法进行测试用例的组织,不同的产品线对应不同的测试集,一个简单的测试功能模块对应一个测试用例。

  二、简易自动化测试架构的实例

  以下可以看一个整体的简单实例操作:

  1、AppObject文件夹中有一个object.java文件,存储一系列的通用的控件查找方法:

  实例如下:

  ////////按钮组件//////////

  //用于搜索其上的按钮

  //输入:按键名称

  //类别:GuiTestObject

  public GuiTestObject getButton(String buttonName)

  {

  RootTestObject root = getRootTestObject();

  TestObject[] to = root.find(atDescendant(".class","javax.swing.JButton","accessibleContext.accessibleName",buttonName));

  return new GuiTestObject(to[0]);

  }

  ///////文本框组件//////

  //用于搜索文本输入框

  //输入:无

  //类别:WTextField

  public WTextField getTextField(String LabelName)

  {

  RootTestObject root = getRootTestObject();

  TestObject[] to = root。find(atDescendant(".class","javax.swing.JTextField",".priorLabel",LabelName));

  return new WTextField(to[0]);

  }