简易自动化测试设计之一

发表于:2011-8-26 13:58

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

 作者:散步的SUN    来源:51Testing软件测试博客

简易自动化测试设计 之一

                     ——基于RFT的自动化测试层次

  序言:基于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]);
}

  说明:

  a、GuiTestObject是直接继承于RFT的所有对象的父类TestObject,其里面包含了一些简单的操作,而我只想用Button的click方法,所以我这里就直接返回的是GuiTestObject类。

  b、RootTestObject也是直接继承与RFT的TestObject,不过它与GuiTestObject类不同的是,它是直接指向被测的应用程序的,即是被测试应用程序的控件的一个全部的view,是按数据结构中的树的方式进行储存的,其中有方法为find(),可以基于属性用来在这个RootTestObject中查找你所需要的控件。

  c、find()方法查找的方式有三种,我重点说一下atChild与atDescendant,前者是在查找根节点的直接子对象、而后者是查找所有的子对象。后面当然是要查找的控件的具体的属性了,在这里,我们可以定义一个基本不变的属性,然后定义一些需要在测试用例中改变的属性,例如:按钮,这里我设计的就是基于按钮名字来进行查找了,如果名字一样的话,你就得用一个别的方式了,例如:index。

  d、WTextField是IBM的ITCL提供的一些控件包裹类,其实就是继承了一些RFT的基本类,然后自己写了一些方法而形成的类罢了,你也可以自己拓展一些控件类嘛。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号