人生的意义,在人生之外,就如同工作的意义,在工作之外。 Cherish the people you meet everyday

IBM 自动化测试框架STAF介绍

上一篇 / 下一篇  2012-04-06 16:11:02 / 个人分类:测试框架

STAF这个测试框架,不仅仅是平时所谓的自动化测试框架,比如关键字驱动还是数据驱动的那种类型的。他分两部分功能:1.跨平台服务2.自动化测试服务。 跨平台服务,比如用一台机器,来把你的build部署到各种不同的平台,比如linux, windows等等。然后,并可以把相应的测试结果收回来,在一台机器上面做分析。所以,可以用这个加上你自己的对被测系统本身的测试框架,联合运作。当然,也可以就用这个来做所有的,但是我感觉,对测试本身的自动化方面的操作不是很方便。要写不少的xml case,很麻烦。

`4l*}.o H0

其他参考文档: http://staf.sourceforge.net/docs.php

*qK9x9V0w` h;mD0

下面的文字,主要copyBaidu百科,是我感觉相对其他地方的而言,总结的比较好的一份文档,里面稍微做了点改动。

li"J1^g%U0

=====================================================

;q2M$Z7p1B%f|v!T:}0

STAF

/P#B/r&v cT0

百科名片51Testing软件测试网!{)SmSjH$\

Software Test Automation Framework (STAF)是由IBM开发的开源、跨平台、支持多语言并且基于可重用的组件来构建的自动化测试框架。它封装了不同平台和不同语言间通信的复杂性,提供了消息、互斥、同步、日志等可复用的服务,使用户可以在此基础上方便快速地构建自动化测试解决方案。STAF在功能级别实施服务调用,51Testing软件测试网Ti \S*CSQ0Wp

一、定义

*v&{R;s9p$DZ i*W0

  各个服务端点(称作STAF客户端)是对等的,从一个端点可直接调用另一端点(在另一台机器运行的程序)提供的服务。

1{6n_(Thii@6j-a"\4YI0

二、技术特点

-oE rR4R5h.c(xo Z0

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

` `vE,K}I0

  2.在各种语言中都很容易使用,包括JavaC/C++RexxPerlTCL,及命令行shell环境51Testing软件测试网c I `J2W Av? CQ%k

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

.y,b;q$r8M?Z+a0

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

~jk:y8lbZ1v0

三、Services (服务)51Testing软件测试网#V6}5qR4^;Ij1h

  [1][2]STAF基于可重用的组件来构建自动化测试框架,这些可重用的组件就是Services(服务)。STAF中所有的组件都是服务。服务是一系列功能的集合。STAF本身是一个后台程序(STAFProc),提供一种轻量级的分发机制,负责把请求转发给这些服务。

|J;}7VF0

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

L@+r)h}:|0

STAF提供了如下几种常用服务:

y6yA%GM7s0

程序调用服务(Process Service):内部服务,利用此服务,STAF可以调用外部程序。文件系统服务(FileSystem Service):内部服务,利用此服务,STAF可以对文件系统进行操作,比如复制,删除,查看等操作。51Testing软件测试网)d^X_+@i mM~7J

日志服务(Log Service):外部服务,帮助用户进行日志的记录和查看。

7v1q Ca3}9pJ)Ng.ze0

资源池服务(ResPool Service)外部服务,提供了对于资源池的管理和操作,如查看,创建和删除操作。51Testing软件测试网9BAv(O`L#T

监控服务(Monitor Service)外部服务,提供对于STAF运行时的监控功能。

Nw ^ o:mP Z+C.G0

信号量服务(Sem Service)内部服务,提供了两种信号量的操作,mutexevent51Testing软件测试网 p2e*E-Y*{^,K8e&d

压缩服务(Zip Service)外部服务,提供了压缩和解压的功能。51Testing软件测试网kJ-w"`3Npf:B

Ping服务(Ping Service)内部服务,类似于操作系统ping功能,用于检测远程的STAF是否运行。51Testing软件测试网,|#aS$A-^

变量服务(Var Service)内部服务,提供对于系统或者用户级别的环境变量的操作。STAF还提供了延迟(Delay Service),帮助(Help Service),跟踪(Trace Service)等服务,这里不一一列举。

~^$O#|!y/w w8W;r0

四、请求/访问格式51Testing软件测试网,c-icc5ZX k

  每个服务都定义了它能接受的请求格式。STAF通过请求来调用服务的功能,每个请求都以字符串的形式发送,这样可以保证STAF能够跨平台的运行。 每个请求都有三个参数,以系统-服务-参数的形式出现。第一个参数表示此请求需要被发送到的STAF系统,这个参数被STAFProc解析以便确定请求应该被本地处理还是发送到其他的STAF系统。 当这个请求被发送到需要处理的STAF系统后,STAFProc解析第二个参数来判断哪个服务会被调用。最后,STAFProc会把第三个参数转发给需要调用的服务,服务处理这个请求。

Pq9a#|\ F+w i0

  当处理完请求后,服务会返回两种数据:返回码和特定于请求的信息。返回码表示服务处理的结果。特定于请求的信息表示服务返回的具体数据,如果请求成功返回,这些信息将包括这次请求所请求的数据,如果请求出现错误,这些信息将包含额外的诊断信息。51Testing软件测试网 il?FPV_

  完全使用字符串作为请求响应格式可以简化STAF的很多方面,包括与其他语言的接口,服务之间的通信,跨平台的操作等。其他语言只需要通过一个接口STAFSubmit()来请求STAF的服务,并且只需传递三个字符串参数。服务之间也只需要通过字符串发送接收请求。

V+rv V.@`0

五、STAX

7w#{0l.B@RoM0

  STAX是基于STAF的执行引擎,它提供了一种XML格式的工作流语言。用户可以编写XML的脚本文件来通过STAX调用STAF的服务已完成自动化测试。用户可以不需要和编程语言打交道就可以开发出自己的自动化测试环境。STAX提供如下的功能:支持并行运行,用户自定义的运行控制粒度,嵌套测试用例,控制运行时间,支持现有的JavaPython模块等。STAX还提供了一个图形化的监控工具,通过这个工具,用户可以清晰的看出测试运行的位置,状态和出错信息等。

B}e"m-|B0

六、STAF(STAX)安装配置

'X'mLG[*k"~3Rw0

  STAF的安装文件可以从STAF的网站下载。对于不同的平台和JVM环境有不同的安装文件,请选择合适的文件下载。如果下载的是jar文件,要确保需要安装STAF的机器上已经安装有相应的JRE,然后运行如下命令安装STAFjava -jar STAF安装文件.jar。 如果下载的是可执行文件,则直接运行即可。

*s+i-[Jr0

  STAF的安装比较简单,只需要按照向导提示进行操作即可。安装完毕后,可以通过STAFProc命令启动STAF。关闭STAF可以用如下的命令:staf local shutdown shutdown。从这条命令我们可以看出上面提到的STAF的命令格式。local表示STAF的本地系统,shutdown表示服务, 此服务提供了STAF的关闭操作。第二个shutdown表示传递给服务的参数,指示STAF把本地的STAF服务关闭。

XN,aDfj a:Z0

  STAX的安装文件也可以从STAF的网站下载。STAX本身不需要安装,只需要更改STAF的配置文件以便STAF在启动的时候能够加载STAX服务。 从这个角度来说,STAXSTAF的一种外部服务,可以根据需要来决定是否加载它。

*H$c+K D ni0

  下载完STAX后,将其解压到$STAF_Install_Directory\services\stax目录中,然后更改STAF的配置文件STAF.cfg。此文件在$STAF_Install_Directory\bin目录下。 在STAF.cfg文件末尾加上如下的代码,然后重启STAF51Testing软件测试网0kS0o deQdZ

  代码1STAX配置

+]8cj"G:jN0

  SERVICE STAX LIBRARY JSTAF EXECUTE \51Testing软件测试网~/e+Ec7A

  {STAF/Config/STAFRoot}/services/stax/STAX.jar OPTION J2=-Xmx384m

:l5V ~rLS.Q0

  SERVICE EVENT LIBRARY JSTAF EXECUTE \51Testing软件测试网 tHl3|)q&Iq

  {STAF/Config/STAFRoot}/services/stax/STAFEvent.jar51Testing软件测试网9| YO,]|1p Y o

  SET MAXQUEUESIZE STAF重启之后,运行命令staf local service list,查看输出结果,如果显示有STAXEVENT,如图1所示,则说明STAX已经成功加载。51Testing软件测试网nxZz fh+G

  1. STAF服务列表51Testing软件测试网[ ~L-}/Rs

  

*cm#B(u;j#D0

  SERVICESTAXLIBRARY JSTAF EXECUTE {STAF/Config/STAFRoot}/services/stax/STAX.jar通知STAF在启动时以名字STAX(这样在STAF服务列表中,我们看到的STAX的服务名字就叫做STAX)来加载STAX.jar,也就是STAX服务。传递的参数J2=-Xmx384m表示更改JVM的堆栈大小。如果STAX会出现OutOfMemory错误,则需要调整这个参数,增加JVM的堆栈大小。建议在加载STAX时总是指定这个参数,并且根据系统环境来调整参数大小。

X;W9d}&u U RN#O0

  SERVICEEVENTLIBRARY JSTAF EXECUTE {STAF/Config/STAFRoot}/services/stax/STAFEvent.jar通知STAF在启动时以名字EVENT来加载STAFEvent.jar

PbB2nq$@p0

  如果需要在运行STAX的机器上运行STAX MonitorSTAX任务的监控工具),则需要设置MAXQUEUESIZE,以保证STAXMonitor能够正确运行。51Testing软件测试网`:r,x;p&M*eo:k"Ygj

  6.1 STAF Java代码示例

XQG$n y@A[F6]3G0

  代码2所示的是STAF Java代码示例。51Testing软件测试网"}3c0z{`$z&L#z$re

  代码2STAF Java代码示例

I'Casx0

  STAFHandle handle = null;51Testing软件测试网5K9a[2[ l A3^&Jj

  try {

,?6Yc Qs(h0

  handle = new STAFHandle("Java_Sample_Test");

.~K GTP"U0

  } catch (STAFException e) {51Testing软件测试网K`i+B)_&m9?8i2K

  System.exit(1);51Testing软件测试网k{6au@ cA

  }

m]:xC/~'B8s0

  STAFResult result = handle.submit2("Linux1", "process",51Testing软件测试网6r*x G%c0Sb P;Y{

  "start command ls parms -l wait stdout /root/lsjava.log");51Testing软件测试网I5Z,Cr v9\T A


TAG: STAF 测试框架 自动化

Ace Life 引用 删除 allenzgw   /   2012-04-06 16:29:25
晕,51testing的这个html编辑窗口有bug,很可能被用来攻击啊。
具体的百度文章请参见
http://baike.baidu.com/view/2289718.htm
 

评分:0

我来说两句

allenzgw

allenzgw

美国, 佛罗里达 Enjoy sand, sunshine, sailing.

日历

« 2024-03-27  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 162794
  • 日志数: 119
  • 图片数: 1
  • 书签数: 2
  • 建立时间: 2007-01-28
  • 更新时间: 2016-06-03

RSS订阅

Open Toolbar