• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

开源的软件自动化测试框架STAF使用特色

发布: 2008-6-30 18:32 | 作者: webmaster | 来源: 本站原创 | 查看: 305次 | 进入软件测试论坛讨论

领测软件测试网 因为工作关系,两年前本人曾调研过STAF软件,当时想为VcTester工具构造一个具有对等通信关系的IPC组件,尽管最终还是弃用STAF,改用自 行开发的SRPC组件,不过仍觉得STAF是不错的自动化控制框架,尤其是跨机控制,用起来比较方便,而且它是开源的。

关于STAF
        STAF(The Software Testing Automation Framework)是发端于IBM的自动化测试框架,如果我没记错的话,2000年的时候STAF就有版本了,不过那时的STAF比较简单,做不了多少 事情。过去这么多年,STAF现已发展成一个庞大体系了。

        STAF主页(http://staf.sourceforge.net/)对该软件介绍如下:

        STAF是开源、跨平台、支持多语言的自动化测试框架,它围绕于组件重用的理念,通过服务调用(比如处理调用、资源管理、登陆、监视等)帮助大家省去繁琐 的自动化架构建设工作,大家只需集中精力在自身自动化实施上。STAF为自动化测试建立了基础,在高层解决方案提供一种可插拨的机制,支持多种平台与多种 语言。

        使用STAF可快速构造自动化测试环境,STAF的服务调用系统也让大家创建自动用例与管理自动用例更加方便。STAF在功能级别实施服务调用,各个服务 端点(称作STAF客户端)是对等的,从一个端点可直接调用另一端点(在另一台机器运行的程序)提供的服务。

        换另一个角度看,STAF是一种分布式远程调用体系,它具有如下特色:

Ø         将环境需求最小化(包括硬件与软件)

Ø         在各种语言中都很容易使用,包括Java,C/C++,Rexx,Perl,TCL,及命令行shell环境

Ø         易于扩展,让用户能方便的创建一个服务插入到STAF体系中

        STAF比较适应需要构造复杂测试环境的场合,复杂测试环境通常是分布式的,通过STAF将测试任务分发到不同的测试环境去执行,可以方便的测试机的测试 脚本,可以方便的收集测试结果,另外,执行引擎STAX(Software Test Automation eXecution Engine)让STAF的使用变得更简单,测试人员只需要配置XML文件便实现STAF任务管理。

几个概念
服务(Services):

        STAF是基于服务(Services)来构建自动化框架的,服务就是STAF的可重用组件,服务还是一系列功能的集合。

        如何理解STAF与服务的关系?STAF是一个小巧的后台程序,在STAF中使用的所有组件都是服务,STAF提供轻量级分发机制,负责将请求转发给这些服务。

        STAF中服务分两种:Internal (内部服务)和 External(外部服务)。内部服务被集成进 STAFProc,提供一些关键性的功能,比如数据管理与同步,外部服务则由 STAFProc 动态装入,通过共享库(shared libraries)来访问。

STAF中常见服务有:

Ø         Process Service:这是内部服务,用来调用外部程序

Ø         File System Service:这是内部服务,可以对文件进行复制、删除、查看等操作

Ø         Log Service:这是外部服务,用于日志的记录和查看

Ø         ResPool Service:这是外部服务,提供查看、创建、删除等针对资源池的管理或操作

Ø         Monitor Service:这是外部服务,提供运行监控功能

Ø         Sem Service:这是内部服务,提供mutex和event信号量操作

Ø         Zip Service:这是外部服务,提供压缩与解压

Ø         Ping Service:这是内部服务,用来检测远程STAF是否在运行

请求/响应:

        STAF的服务以字符串形式表达,每个请求都有三个参数(系统、服务、参数),第一个参数指示目标STAF系统,该参数由STAFProc解析以便确定是 在本地处理还是发送到远端STAF系统,第二个参数指示调用哪个服务,第三个参数运行服务的参数。当服务处理结束将返回两类数据,一是表示服务处理结果的 返回码,二是服务返回特定数据。

执行引擎:

        STAX是基于STAF的执行引擎,它采用XML格式描述。在XML文件中可定义测试工作流,可以实现并行执行、嵌套测试用例、控制运行时间等,STAX支持Java 和 Python 模块。

STAF与VcTester
        前两年我们调研STAF是想拿它构造本机跨进程的通信机制,后来发现STAF无法满足我们的要求,在本机的IPC我们要求更精细,进程之间要支持更实时的 响应能力,通信包可能很小,也可能很大,我们需要一种能平滑自适应系统,对大消息通信,还应自动改由文件方式传递,此外,跨进程服务的启动与关闭、重起等 操作,我们有更精细要求。所以,我们就自行开发一种基于共享内存通信的SRPC组件,在它之上再叠加跨进程MVC机制,这就是大家使用VcSmith或 VcTester看到的RemoteUI功能。

        当然,这里我讲的是STAF的本地服务,STAF的跨机测试控制无疑非常强大,适应平台与编程接口都很丰富。所以,后续VcTester版本在向自动化测试延伸后,我们将考虑提供基于STAF插件结构的服务调用机制。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 框架 软件 自动化 STAF 特色


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网