2、AppLib文件夹中有一个Lib.java的文件,其类存储对查找到的控件对象操作的基本方法.

  实例如下:

  //下面是对对象的初始化

  public AppObject.Rc_Object getObject = new AppObject.Rc_Object();

  //下面是对共同方法的实例化

  public AppLib.Rc_Method getMethod = new AppLib.Rc_Method();

  //////////////////////按钮组件操作/////////////////////////////

  //采用动态搜索的方法进行找到Button组件,并且执行click操作

  //输入:ButtonName

  public void ChooseButton (String buttonName)

  {

  getObject.getButton(buttonName).click();

  sleep(3);

  try {

  //向外部日志写其完成测试的步骤

  getMethod.logWriter("完成"+ buttonName + "的ChooseButton方法;");

  } catch (Exception e) {

  //可以调用异常处理模块进行异常处理

  }

  }

  //////////////////////文本框组件操作/////////////////////////////

  //采用动态搜索的方法进行找到TextField组件,并且执行click操作

  //输入:TextFieldName

  public void ChooseTextField (String LabelName,String TextName)

  {

  sleep(3);

  getObject.getTextField(LabelName).setText(TextName);

  //用JAVA的语句将其UserName拆分成一个一个的字符进行输入

  try {

  getMethod.logWriter("完成" +LabelName+" ChooseTextField方法");

  } catch (Exception e) {

  //可以调用异常处理模块进行异常处理

  }

  }

  说明:

  a、ChooseButton (String buttonName)方法是找到一个名字为buttonName的按钮进行点击操作.ChooseTextField (String LabelName,String TextName)方法是找到一个前缀名为LabelName的文本框进行输入TextName.

  b、此处有一个getMethod.logWriter是用于向外部LOG写入具体的控操作信息的.当然你也可以不写在方法中,写在测试用例中也可以,不过需要其返回一个button的名称,然后在测试用例中一个方法获得这个name,然后再将信息写到日志中,个人认为后者方式较好,因为其可拓展性强.

  c、这里以前设计的是在此抓取异常,然后进行异常处理操作,你可以选择调用一个共同的异常模块,我的异常处理方式是:抓取到异常,则关闭整个测试程序,重新进行下一个测试用例.

  3、AppTestCase文件夹中有一系列产品线的文件夹,然后每个文件夹对应每个功能模块,这里不多说了,根据自身公司部门的情况决定吧.

  三、一些需要注意到的地方

  1、用动态搜索的方法是脱离RFT的对象库的,所以无需使用RFT的对象映射机制了.

  2、你可以在外部基于测试方法进行测试用例的编写.

  3、因为整个系列只用了RFT中的RationalTestScript类中的方法,所以我本想直接用eclipse导入含有这个类的jar包,然后基于eclipse进行其测试用例的编写,但没成功,因为其回放的机制中还用到了很多具体的类,这些是不可见的了,看样子商业工具在这方面做的很严密啊.

  4、根据这样,你可以想尽办法,利用RFT提供的CMD接口,将RFT隐藏起来吧.

  5、其实一个自动化测试框架而言,RFT好能做到成为其框架的一个插件,所以用到的RFT东西越少越好了.

  6、想想原理挺简单的,可是自己摸索的时候发现却要走了很多弯路,但是摸索的过程对于以后对整个测试活动理解还是很有帮助的,所以,个人觉得,不要怕走弯路,关键要摸

  四、接下来的系列

  1、用例驱动与数据驱动机制.

  2、图形界面操作设计.

  3、……

  总之,此处只是简单说明了一种通用的自动化测试层次,可以根据自己部门特殊的情况进行改善或者拓展,这里的方式只能是简单的使用,如果要规模化的话,个人觉得,还远远不够,工具只是一种服务,而这里需要是一种调用服务,即"框架".