欢迎来到天天文库
浏览记录
ID:32175419
大小:93.82 KB
页数:7页
时间:2019-02-01
《软件自动化测试框架staf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、什么是STAF STAF(SoftwareTestingAutomationFramework)是一个由IBM开发的开源、跨平台、支持多语言且基于可重用的组件来构建的自动化测试框架,而这一系列的组件都是一些可以处理调用、资源管理、监视等一些列的服务组成,后面将会介绍这些概念。STAF框架为自动化测试建立了基础,在高层解决方案提供一种可插拨的机制,支持多种平台与多种语言。 二、我们真的需要这个框架么 当然,我不是一个推销员,也更不肯能是。但是,我想说的是,单从软件产品测试的角度来看,产品的平台兼容性是一个不可忽视的问题。对于Windows平
2、台上,软件产品需要能够完美的兼容早期的Win98、WinNT系统,还得兼容表现优秀的WinXP、WindowsServer系统,更要支持用户群扩大的Win7。如果产品做的好,甚至还需要兼容Linux、MacOS。注意了,其实对于每种系统还可以继续分为32位系统与64位系统,而每次产品在Release之前都需要在在上述各个平台上测试N遍。如果纯手工的测试,那么在投入的人力、设备、以及时间成本上是很惊人的,那么一种自动化测试需求便应运而生了,而STAF便是满足这种需求的一种框架。 三、怎么运用STAF来解决我们的需求 那么,你可能会疑问,STAF框架怎么解决
3、上述这个问题的呢?一种合理的解决方案是,一般公司都会有一些性能配置优越的服务器(暂且称为Lab机器),而我们工作人员一般的机器性能都仅仅满足我们的日常工作(暂且称为Office机器),做一些日常的开发和文档处理绰绰有余,但是同时开多台虚拟机跑测试的话,估计机器也就卡的半死不活了,到时候我们只能大眼瞪小眼了,而逐个平台的测试的话,时间却又是我们所不能接受的。所以我们可以将跑测试的工作交由处理能力很强的Lab机器,而我们测试人员的Office机器需要做的则是告诉Lab机器需要做什么,然后Lab机器在执行完测试任务后会将测试结果返回到Office机器上。 在上述的
4、描述中,Office机器与Lab机器都必须装有STAF,需要指出的是,各个装有STAF环境的机器之间的关系是对等的(PeertoPeer),也就是没有服务器与客户端区别。Office机器端上的STAF可以通过与Lab机器上的STAF进行通信,从而调用Lab机器上STAF提供的各种服务(例如可以要求Lab机器启动NotePad这个进程或者调用某个测试脚本程序)。为了方便大家理解,可以参考下图进行理解: 图中一些概念下文会做详细讲解 四、理解STAF中的一些概念 1、STAFProc进程 STAFProc进
5、程这个概念很重要,在上图中就是STAFDaemo进程(守护进程)。熟悉Linux或者Java的朋友可能对于守护进程这个概念不陌生,守护进程一般是一些运行在后台,进程级别很低的进程,且生命周期一般很长,主要监视系统的一些状态并在适当的时机做出一些操作。如JVM(Java虚拟机)中的垃圾回收器进程,则是运行在虚拟机里面的守护进程,其随着JVM启动而存在,不断的检测是否存在可回收的内存资源,并在适当的时候进行垃圾内存的回收。而在STAF中,也存在这种类型的进程,它就是STAFProc进程,这种进程一般随着系统启动就开始运行,不断的监听来自其他对等断点STAF的请求,并
6、在收到请求后调用相应的服务加载器(ServiceLoader)来加载相应的服务,如调用STAF中的Process服务来启动一个本地进程。 2、STAF服务(Service) STAF是基于服务来构建自动化框架的,每个服务就是STAF的可重用组件,其通过STAFProc分派来的任务来实现其"人生价值"。在STAF中主要分为两种类型的服务,一种是内部服务(InternalService),一种为外部服务(ExternalService)。 那么,上述两种服务有什么区别呢?内部服务的话则一般被集成到STAFProc,一般都是一些比较基本而常用的服
7、务;而外部服务则是需要动态载入,其可执行码不在STAFProc中,一般都在外部Jar中或者外部DLL库中。其实,这个对于Java熟悉的朋友比较好理解,我们Java程序JdK装完后可以使用的那些包(Package)就相当于内部服务,而当我们需要进行一些特殊开发的时候,往往需要引入一些第三方库(如开发蓝牙服务的BlueCover.jar),这些就好比外部服务。 3、内部服务 有如下常见内部服务: 服务名称作用DELAY可以使得服务得到延迟一段时间。应用场景:在执行一个耗费时间的任务时候,在进行下一步操作前,需要延迟等待一段时间PROCE
8、SS可以启动、停止或者查
此文档下载收益归作者所有