TA的每日心情 | 怒 2015-9-10 15:08 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
转载于 崔 俊涛 (cuijunt@cn.ibm.com), IBM 上海全球实验室的软件工程师, IBM
2007 年 10 月 25 日
如今软件开发依赖于集体的开发和测试。对于部署和测试人员来说,如何从集中的代码管理工具来获取源代码或者代码的编译包并且自动部署和测试变得非常重要。本文借助于 STAF(STAX) 和 FTP 以及 CVS 工具介绍如何自动从 FTP 或者 CVS 下载程序的更新包,并且部署到测试环境中。本文首先对自动化测试框架Software Test Automation Framework (STAF)和Software Test Automation eXecution Engine (STAX)进行简要的介绍,然后简单介绍如何安装和配置STAF(STAX)。其次本文将结合一个场景重点介绍STAF(STAX)如何利用CVS和FTP工具进行源代码的下载、编译、分发、部署和测试。最后本文列出了使用STAF(STAX)的经验和教训。
读者可以从本文了解到 STAF(STAX) 的基本概念和用法。本文适合 STAF 的初学者。
1.STAF(STAX)
Software Test Automation Framework (STAF) 是开源、跨平台、支持多语言并且基于可重用的组件来构建的自动化测试框架。它为自动化测试建立了基础,并且提供了一种可插拨的机制支持不同的平台和语言。STAF 采用点对点的实现机制,被用来减轻自动化测试的工作负担,加快自动化测试的进程。在 STAF 的环境中,所有的机器都是对等的,没有客户端和服务器的区分。
Software Test Automation eXecution Engine (STAX)是基于 STAF 的执行引擎。它在 STAF 的基础上,帮助用户实现测试用例的分发、部署、执行以及结果分析。STAX 使用了三种技术:STAF, XML 和 Python。简单来说,STAX 在 STAF之 上提供了一些接口,方便用户来操纵STAF进行自动化测试的实现。
我们将简要介绍一下 STAF 和 STAX 中所用到的概念和机制。
1.1 Services (服务)
STAF 基于可重用的组件来构建自动化测试框架,这些可重用的组件就是 Services(服务)。STAF 中所有的组件都是服务。服务是一系列功能的集合。STAF 本身是一个后台程序 (STAFProc),提供一种轻量级的分发机制,负责把请求转发给这些服务。
STAF 中的服务分为两种:internal (内部服务)和 external(外部服务)。内部服务被集成进 STAFProc 中,提供一些关键性的功能,比如数据管理和同步。外部服务由 STAFProc 动态装入,通过共享库(shared libraries)来访问。
STAF 提供了如下几种常用服务:
程序调用服务(Process Service):内部服务,利用此服务,STAF 可以调用外部程序。
文件系统服务(FileSystem Service):内部服务,利用此服务,STAF 可以对文件系统进行操作,比如复制,删除,查看等操作。
日志服务(Log Service):外部服务,帮助用户进行日志的记录和查看。
资源池服务(ResPool Service):外部服务,提供了对于资源池的管理和操作,如查看,创建和删除操作。
监控服务(Monitor Service):外部服务,提供对于 STAF 运行时的监控功能。
信号量服务(Sem Service):内部服务,提供了两种信号量的操作,mutex 和 event。
压缩服务(Zip Service):外部服务,提供了压缩和解压的功能。
Ping服务(Ping Service):内部服务,类似于操作系统的 ping 功能,用于检测远程的 STAF 是否运行。
变量服务(Var Service):内部服务,提供对于系统或者用户级别的环境变量的操作。
STAF 还提供了延迟(Delay Service), 帮助(Help Service), 跟踪(Trace Service)等服务,这里不一一列举。
1.2 请求-响应格式
每个服务都定义了它能接受的请求格式。STAF 通过请求来调用服务的功能,每个请求都以字符串的形式发送,这样可以保证 STAF 能够跨平台的运行。 每个请求都有三个参数,以系统-服务-参数的形式出现。第一个参数表示此请求需要被发送到的 STAF 系统,这个参数被 STAFProc 解析以便确定请求应该被本地处理还是发送到其他的 STAF 系统。 当这个请求被发送到需要处理的 STAF 系统后,STAFProc 解析第二个参数来判断哪个服务会被调用。最后,STAFProc 会把第三个参数转发给需要调用的服务,服务处理这个请求。
当处理完请求后,服务会返回两种数据:返回码和特定于请求的信息。返回码表示服务处理的结果。特定于请求的信息表示服务返回的具体数据,如果请求成功返回,这些信息将包括这次请求所请求的数据,如果请求出现错误,这些信息将包含额外的诊断信息。
完全使用字符串作为请求响应格式可以简化 STAF 的很多方面,包括与其他语言的接口,服务之间的通信,跨平台的操作等。 其他语言只需要通过一个接口 STAFSubmit() 来请求 STAF 的服务,并且只需传递三个字符串参数。服务之间也只需要通过字符串发送接收请求。
1.3 STAX
STAX 是基于 STAF 的执行引擎,它提供了一种 XML 格式的工作流语言。用户可以编写 XML 的脚本文件来通过 STAX 调用 STAF 的服务已完成自动化测试。用户可以不需要和编程语言打交道就可以开发出自己的自动化测试环境。STAX 提供如下的功能:支持并行运行,用户自定义的运行控制粒度,嵌套测试用例,控制运行时间,支持现有的 Java 和 Python 模块等。STAX 还提供了一个图形化的监控工具,通过这个工具,用户可以清晰的看出测试运行的位置,状态和出错信息等。 下面我们将通过与 FTP 和 CVS 的协作完成自动化部署来展示 STAF 和 STAX 的功能。 |
|