转-STAF学习使用总结一

  下午在安装 STAF的过程中感觉此篇比较有用,转载以保存后用

  转贴网址:  http://qa.blog.163.com/blog/static/1901470022012102494448559/


 

STAF基本概念

Software Testing Automation Framework 软件测试自动化框架。用以提升测试用例和测试环境的可重用性以及自动化的程度。STAF 为测试人员提供了一个端到端的自动化测试解决方案。

 

官网:http://staf.sourceforge.net

 

各个装有staf环境的机器是对等的(Peer to Peer),一个端可直接调用另一个端提供的服务。采用P2P架构,没有服务端,客户端之分,任何一台机器都可以向其它机器发送请求。可以利用STAF的这种特性实现分布式执行的功能。

 

STAFProc进程

STAF本身是一个后台程序STAFProc,不断监听来自其他对等端点的STAF请求。

 

 

STAF服务

STAF所有功能都是通过服务实现的

主要有两种类型的服务:内部服务(Internal Service),外部服务(External Service)。每种服务都可以处理多种请求,每种请求都有安全级别限制

内部服务:开启staf这些服务就可以工作了。一般被集成到STAFProc,一般都是一些比较基本常用的服务。

外部服务:不是staf基本服务,必须将服务注册到staf才可以使用。需要动态载入,可执行代码不在STAFProc中,一般都在jar中或者外部dll库中。

名称

属性

作用

DELAY

内部服务

延时服务,可以提供延时

DIAG

内部服务

可以记录一些诊断信息

ECHO

内部服务

PING服务相似,但是可以指定返回值

FILE

内部服务

文件服务,可以在不同机器见实现文件创建、查询、拷贝、删除等操作

HANDLE

内部服务

句柄服务,可以创建静态句柄,可以删除句柄

HELP

内部服务

帮助服务,可以列出很多帮助信息

LIFECYCLE

内部服务

可以在STAF启动或者关闭时触发某些事件的发生

MISC

内部服务

提供一些杂项信息,如STAF版本,系统基本信息

PING

内部服务

判断两台机器是否连通

PROCESS

内部服务

开启系统进程

QUEUE

内部服务

处理handle中的消息队列

SEM

内部服务

信号量服务

SERVICE

内部服务

可以查询STAF中所有的服务,可以动态注册或者注销外部服务

SHUTDOWN

内部服务

关闭STAF

TRACE

内部服务

可以跟踪请求提交过程,方便信息查询

TRUST

内部服务

信任等级服务,在机器间设置不同的信任等级

VAR

内部服务

变量服务,处理STAF中的变量

LOG

外部服务

日志服务,可以记录、查询日志信息

MONITOR

外部服务

监测服务,监测STAF执行状态

RESPOOL

外部服务

资源池服务,可以提供资源

ZIP

外部服务

提供ZIP格式的压缩包,压缩、解压缩

CRON

外部服务

可以触发一个事件周期发生

EMAIL

外部服务

可以发送邮件

EVENT

外部服务

注册触发事件,当触发事件发生时可以有响应事件

EVENTMANAGER

外部服务

注册响应事件,当触发事件发生时,执行响应事件

FSEXT

外部服务

增强的FS服务

FTP

外部服务

可以处理FTP相关请求

HTTP

外部服务

可以处理HTTP相关请求

NAMEDCOUNTER

外部服务

提供了计数器功能

NAMESPACE

外部服务

提供了命名控件功能

SXE

外部服务

可以将所有STAF指令写在文件中,然后顺序执行

TIMER

外部服务

提供了定时器动能

STAX

外部服务

STAF上的一个执行引擎

 

STAF服务请求格式

STAF    < Service>  

 远程机器的IP或者localhost。表示向哪台机器发送请求

Endpoint端机器上STAF环境中的服务名称。表示向哪个服务发送请求

请求的内容。

 

STAF命令举例

查看本机STAF环境中的服务列表 STAF Local Service List

 

测试IP地址为192.168.0.2的机器的STAF服务是否存活,存活的话显示如下图

STAF 192.168.0.2 PING PING

 

查看目标机器文件夹是否存在

staf qa2-pri.server.163.org fs query entry /home/qatest/PerformanceTest

复制脚本到目标机器

staf local fs copy file /home/qatest/testscript.py  todirectory /home/qatest/  tomachine qa2-pri.server.163.org

目标机器执行对应shell命令操作

staf qa2-pri.server.163.org process start shell command mkdir testdir1 workdir /home/qatest

更详细的命令使用可以参考

http://staf.sourceforge.net/current/STAFUG.htm#HDROVERVIEW

 

各种编程语言调用STAF格式(Python为例)

1)向STAF注册一个handle,以后所有请求都使用这个handle

handle = STAFHandle(“My Application”)

2)利用这个handle发送请求,并且处理返回结果

result = handle.sumit(“192.168.0.2”,”ping”,”ping”)

3)所有请求结果处理完,最后要注销handle

handle.unregister()

staf提交请求时必须注册一个句柄,请求完成后要注销掉这个句柄

STAF支持以下语言:C C++ Rexx JAVA Perl Python Tcl,程序中可以规定请求使用同一个句柄

 

STAF安全级别

每种请求都有安全级别的限制,只有你达到这种安全级别才能发送这种请求。

分为六级,级别0-5,0最低,5最高

内部测试环境,方便起见,信任级别可以都设置成5

设置某机器信任级别的方法:

修改staf/bin目录下文件staf.cfgtrust machine 192.168.0.2 level 5

 

STAFlinux下安装配置

Linux下的STAF有两种安装模式,一种是直接下载bin包进行安装,另一种则是下载tar包进行安装。

(1)修改安装配置文件installer.properties,其中几项需要修改:

USER_INSTALL_DIR=/home/qatest/staf 安装路径

USE_PERL_VERSION=5.10 目标机器的perl版本

USE_PYTHON_VERSION=2.6 目标机器的python版本

STAF_INSTANCE_NAME=STAF-APP67 目标机器名

(2)执行安装 ./STAF3410-setup-linux-amd64.bin -f installer.properties

(3)修改STAF安装目录staf/bin目录下的STAF.cfg文件,配置机器间的信任关系

# Set default local trust

trust machine local://local level 5

trust machine 10.2.5.101 level 5

(4)配置环境变量

PATH=/home/qatest/staf/bin:${PATH:-}

LD_LIBRARY_PATH=/home/qatest/staf/lib:${LD_LIBRARY_PATH:-}

CLASSPATH=/home/qatest/staf/lib/JSTAF.jar:/home/qatest/staf/samples/demo/STAFDemo.jar:${CLASSPATH:-}

STAFCONVDIR=/home/qatest/staf/codepage

(5)启动STAFProc

./staf/bin/ STAFProc &

(6)确定STAF已经安装正确

staf local service list

你可能感兴趣的:(VMware)