基于Flex的自动化测试框架

来源 :硅谷 | 被引量 : 0次 | 上传用户:hy3508
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]介绍Flex的事件流的框架及其对自动化的支持,自动化测试工具与Flex源码的交互机制,从Flex自动化支持、流程、维护三方面框架提出Flex自动化工程的重要因素。
  [关键词]AdobeFlex自动化框架测试SilkTest
  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1120059-01
  
  任何长期的软件项目的测试工作最终都会进入自动测试阶段。软件开发的过程中在不断的更新旧的功能增加新的功能,在此基础上必须保证不影响原有的正常功能。自动化测试的引入使测试人员从繁重而枯燥的工作中解放出来,同时还能保证精确性。
  随着Adobe Flex编程技术的流行,基于Flex的软件项目应运而生。然而,其美观的界面却相应带来了测试的复杂性,它不同于数据驱动测试只顾输入输出,也不同于事件驱动测试只关注行为与结果,Flex产品与Flash一样可作出动态的美丽的外观效果,在事件处理上也及其复杂,这对测试带来一些极大的挑战。本文将介绍基于Flex的自动化测试框架。
  
  一、自动化测试框架
  
  首先让我们看一下自动化测试框架,如图1:基于自动化测试工具的测试过程不外乎三步:自动化测试初始化;自动化录制;自动化回放。即测试工具能够识别Flex的控件,通过录制用户的操作步骤模拟用户操作,生成测试脚本,回放录制的步骤,检测结果,以达到自动化测试的效果。
  
  二、Flex与测试工具交互框架
  
  然而自动化测试工具如何能够识别用户各种操作并进行模拟呢?让我们再来看一下Flex事件流框架(如图2):
  Stage相当于树的根部为枝叶输送养份而服务的,一个事件的触发必须首先通过这个平台进入,在对象的显示列表中找到基类,再顺延找到子类,在相应的地方去实现一个事件的处理程序。所有的显示对象都有一个Stage的属性用于指向应用平台。每当事件触发时,都会经历从Stage到目标节点再从目标节点返回Stage的过程:抓获阶段,这个过程会抓获在Stage上的所有节点的父节点;目标阶段,查找到目标子节点;浮出阶段,将查获的子节点通过其父节点返回至Stage平台上。
  自动化测试工具对Flex事件的支持便是按照其事件流处理框架的标准来实现的,首先必须能够找到所谓的Stage,然后识别Stage上的所有对象,进而找到那个唯一的子对象去获得它的属性及事件处理方法,自动化测试工具通过记录用户UI上的操作然后触发事件流达到自动化操作的过程,再由用户添加检查点以达到测试的目的。因而,测试工具要模拟用户操作必须要求能够识别对象,而且用户操作的事件流也必须按照如上图所示的事件流来操作,即必须通过一个Stage平台到Flex对象。
  Flex在技术上又是如何与自动化测试工具交互的呢?为了支持Flex的自动化,Flex特提供了一个重要的包,即Adobe Flex自动化包(mx。automation。*):这个包为开发者创建Flex测试案例提供了自动化编程的接口。此包包含了:自动化库-automation。swc与automation_agent。swc这两个库用于帮助实现Flex框架的组件的派生类。Automation_agent。swc文件以及与其相关的包提供普遍的代理机制。代理,如SilkTest代理,是建立在这些库之上的。有了这些支持才便于测试工具去模拟Flex处理机制。而对于自动化工具本身也提供了支持Flex的接口,以达到自动化工具与Flex的通信与交互。如SilkTest也提供一个支持自动化的SDK,它是基于Flex自动化的API的。SDK以与Flex的AutomationAPI同样的方式为Flex组件提供自动化支持。SilkTest的开放代理(Open Agent)使用了Adobe的Flex自动化代理库。FlexTechDomain。swc文件即包含了SilkTest的具体实现实现方法。
  Flex测试工程的准备工作与其它项目类似:开启支持Flex应用程序测试的接口;创建可测试的Flex应用程序;编译Flex容器(相当上面提到的Stage);使Flex事件与组件工具化(目的是为了使测试工具能够识别Flex对象,并模拟其事件处理程序)。
  
  三、测试维护框架
  
  为了提高自动化测试套件的可维护性,还需要采取一些措施。推荐采用测试脚本模块化框架。通过创建独立的脚本来代表被测试应用程序的模块、对象或函数,利用抽象和封装的原则将过程对象与源应用脱离开来,增强测试脚本的重用性,可维护性,降低由源代码的改变而带来的脚本大量的变动、失效。由此,才得以更为有效的提高自动化测试的效率与可用性。例如,SilkTest将一项工程分为四类文件来管理,即测试计划文件(.pln),由测试脚本与参数构成,类似于Function的一个实例,可用于分类管理测试案例;测试脚本文件(.t),可分类管理各类各个测试案例的过程描述;包含文件(.inc),可用于管理各种封装后的函数;配置文件(.ini)。这种规划管理一个复杂的工程项目得以有序清晰方便的进行管理。
  
  四、结束语
  
  由此,回顾整个过程,二个方面是我们在实现自动化测试的过程不可不关注的,它是自动化支持的瓶颈,是开启自动化的钥匙,即被测应用程序与测试工具的相互支持及测试脚本的有效维护。
  
  参考文献:
  [1]《Programming ActionScript 3.0》,2008 Adobe Systems Incorporated.
  [2]《Borland SilkTest 2008 Help》,Borland Software Corporation.
  [3]《Design,Automation and Test in Europe》,Nice Acropolis,France April 16-20,2007.
其他文献
在当前的建筑工程项目施工建设环节中,钢筋混凝土材料的使用已经成为了不可或缺的一环,钢筋混凝土项目分部内容对于建筑的整体工程质量有着决定性的影响。在当前的工程建设发
介绍了Richcel(R)纤维与氨纶丝纺制包芯纱的实践经验,提出了Richcel纤维前纺工序工艺的要点和环锭纺纺制包芯纱过程中应注意的几个关键问题,为Richcel纤维新品种开发提供了参
自1983年10月以来,我们抢救住院期间发生心跳骤停病人11例,共25例次,复苏成功率82%。通过对这些病例的回顾性研究,将心性猝死的危险因素探讨如下。临床资料:11例均为住院病
[摘要]在归纳现有网络信息安全技术的基础上,把校园网络信息安全措施分为以防火墙技术、入侵检测技术等为代表的硬件级措施和以病毒防御、身份确认等为代表的软件级措施,在校园网上实现以防火墙技术为核心的硬件级保护和以防病毒技术为核心的软件级保护相结合的军校校园网络信息安全防护体系。  [关键词]校园网网络信息安全信息安全信息安全措施  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009
航煤吸附罐换剂工作过程十分复杂,涉及高处作业、高温蒸汽、氮气、含硫油气等多种危害因素。运用工作危害分析的方法,识别出航煤吸附罐更换吸附剂作业中每一工作步骤中的危险
CIMS主题是国家“863”计划自动化领域的一个主题.经过多年的努力,CIMS主题已取得了重大进展.
汽车零部件这个产业与一般的产业是不一样的,我们主要定位在售后市场,汽车的某个零部件坏了以后才需要维修,因此我们的产品与维修服务是紧密挂钩的.整个行业“散、乱、差”这
[摘要]把P2P对等技术运用到虚拟学习社区中,通过对社会心理学理论的学习,使之更加适应当前远程教育领域分布式协同的趋势,为解决当前网络教育存在的问题提供一种全新的思路。  [关键词]虚拟学习社区P2P社会心理学  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1120046-01    目前大多数虚拟学习社区和网络学习环境都是建立在客户端/服务器模式下的,这种模式随着学习
无论对于BLC的研究项目还是商务活动而言,有关原料皮的工作一直扮演着重要的角色,而且,这方面的工作也越来越受到政府的特别关注.现今,我们一直研究的是有关畜牧业对皮革质量
对于中国零部件行业的总体情况,我个人认为在最近几年的发展中,已经取得了不错的成绩.只要大家稍加留意就会发现,前些年国内的汽车零部件业可以说是非常明显的“散、乱、差”