Staf学习资料.doc

上传人:新** 文档编号:548174518 上传时间:2024-01-07 格式:DOC 页数:51 大小:213.51KB
返回 下载 相关 举报
Staf学习资料.doc_第1页
第1页 / 共51页
Staf学习资料.doc_第2页
第2页 / 共51页
Staf学习资料.doc_第3页
第3页 / 共51页
Staf学习资料.doc_第4页
第4页 / 共51页
Staf学习资料.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《Staf学习资料.doc》由会员分享,可在线阅读,更多相关《Staf学习资料.doc(51页珍藏版)》请在金锄头文库上搜索。

1、在STAF中有三个核心服务,它们分别是handle(句柄)、variable(变量)和queue(队列)服务。这些服务提供了最基本的公共功能,并跨越了所有的服务。同时也为我们提供了一个持续构建的基础。一点也不奇怪,这些服务展现了STAF中handles、variables和queuing的能力。 Handles用来识别并封装STAF环境中的应用程序的数据。当一个应用程序希望使用STAF时,它会通过调用一个注册的API以获得一个handle(句柄)。返回的handle会特别地指向注册的应用程序。一般来说,应用程序与handles之间是1对N(多)的映射关系。一个应用程序可以有多个handle,但

2、任意一个给定的handle只属于一个单个的应用程序。然而,STAF不支持特殊的“static”(静态)handles,而这些handles可在应用程序之间共享。每个STAF的handle都有一个与之关联的信息queue(队列)。这个队列允许应用程序接收来自于其他应用和服务的数据。它也构成了STAF中本地和面向网络的IPC(进程间通信)的基础。很多服务都是通过它的队列来向应用程序发送数据的。这些队列允许应用程序以事件驱动的方式工作,类似于许多窗口系统所使用的方法。 通过STAF的变量(服务),STAF能够提供数据管理的功能。STAF应用程序使用的这些STAF变量的方法与编程语言使用变量的方法大致

3、相同。在提交了一个STAF请求时,请求中的变量会被他们的值所替换。STAF变量(服务)有一个强大的功能是可以在运行的应用程序的范围之外对变量进行修改。这个功能提供了一个能力,就是可以动态地修改应用程序的特性。 例如,设计一个程序,用来向系统施加一定百分比的负载,而此程序可能允许我们通过一个环境变量或者一个命令行参数来设定这个百分比。在这种情况下,程序一旦开始运行,改变负载百分比的唯一方法就是停止程序,修改环境变量或命令行参数,并重启程序。而使用STAF变量则可以在不停止程序的情况下修改负载百分比的值。对程序所做的唯一修改也仅仅是让程序周期性的重新评估STAF变量的值。这些STAF变量被保存在变

4、量池中。每一个STAF handle(句柄)都具有唯一的,且为对应的应用程序所特有的变量池。STAF也会提供一个全局变量池,一个给定的STAF系统上所有句柄公用的变量池。此公共性允许我们在全局变量池中设定默认值,然后按照各个句柄的访问顺序覆盖这些默认值。 除了handle(句柄),variable(变量)和queue(队列),STAF还提供其他几项服务。STAF通过semaphore(信号量)和resource pool(资源池)服务提供同步功能。其中,信号量服务提供两种信号量的操作:mutual exclusion (mutex-同时共享排他性,即互斥)和事件信号量。与通常由操作系统提供的信

5、号量相比,STAF信号量具有两个优点。一,可通过网络远程使用。二,更加可视化,这意味他们也更为简单,例如,要判断谁拥有一个mutex(互斥)信号量和谁正在等待一个event(事件)信号量。而资源池服务则为管理已命名的,如machines(机器)、user identifiers(用户ID)和licenses(许可)等资源池,提供了一个管理手段。特别的是,它提供了对池内容进行管理,以及同步存取池中元素的特性。 STAF通过process(进程)服务来执行STAF系统上的进程启动、停止和查询操作。它可以对进程的执行进行详细地控制,包括明确的环境变量、工作目录、输入/输出重定向,以及有效的用户ID。

6、进程服务也能应用户的要求,在进程结束时发送通知。这些通知通过前面描述的队列功能发送。 STAF通过file system(文件系统)服务提供文件系统功能。目前,这个服务为文件的传送和文件内容的存取提供了理论依据。STAF的未来版本会把此服务的功能扩展到文件和目录的管理中,如目录的创建和枚举,以及文件或目录的删除。 通过log(日志)服务,STAF提供日志记录功能。在最基础的层上,此服务根据各个级别,如“FATAL”、“ERROR”、“WARING”以及“DEBUG”,提供时间戳(time-stamped)类消息的日志记录。各种更高级别的功能都建立在这个基础之上,包括本地和集中式的日志记录、程序

7、间的日志共享、动态的level-masking(级别遮盖),以及活跃态日志的维护。动态的level-masking有其特殊的意义。级别遮盖指用户能够判断日志记录的级别,以确定把哪种级别的记录保存在日志文件中。未包含在级别遮盖中的记录级别的信息会被丢弃。事实上这个特性是动态的,意味着我们可以在程序运行时,修改级别遮盖。例如,用户能够在遇到问题的时候,“打开”debug(级别)的信息,而不需要停止并重启程序。 STAF通过monitor(监控)服务提供远程监控功能。此服务提供了一个轻量级的分发-查询(publish-query)机制。 应用程序公布他们的状态,并允许其他程序远程查询这个状态。所公布

8、的状态是一个简单的时间戳字符串,但这已经能够充分的证明监控服务的健壮性了,尤其是对于典型的测试和应用进程的监控而言。 通过event(事件)服务,STAF具有事件处理的能力。这项服务提供了标准的发布-订阅(publish-subscribe)机制。应用程序注册为具体类型的事件和可能的子类型事件。其他应用程序根据类型、子类型和一系列属性(属性/值的结对)生成事件。事件会通过上文描述的队列功能发送。 除上述服务外,团队为了满足特定需求会开发自己的服务,而STAF会让这变得很简单。这些新的服务会成为STAF服务组件集的一部分。究其本质,STAF是一个模块化的基于服务的平台,这也为它的发展和演变提供了

9、基础。STAF通过服务调用(如远程处理、资源管理、监控等)来完成自动化架构的构造。STAF服务包括内部服务和外部服务,其中内部服务的可执行代码存在于STAFProc中,外部服务的可执行代码存在于STAFProc外部,通过STAF.cfg配置注册方可使用。编译 staf 前D:buildsrcstafstafprocSTAF.cfg编译staf 后D:buildrelwin32stafretailbincSTAF.cfgStaf安装根目录binSTAF.cfg# Turn on tracing of internal errors and deprecated optionstrace enab

10、le tracepoints error deprecated# Enable TCP/IP connectionsinterface ssl library STAFTCP option Secure=Yes option Port=6550interface tcp library STAFTCP option Secure=No option Port=6500# Set default local trusttrust machine local:/local level 5# Add default service loaderserviceloader library STAFDS

11、LS# Turn on tracing of internal errors and deprecated optionstrace enable tracepoints error deprecated# Enable TCP/IP connectionsinterface tcp library STAFTCP# Set default local trusttrust machine local:/local level 5# Add default service loaderserviceloader library STAFDSLS# Turn on tracing of inte

12、rnal errors and deprecated optionstrace enable tracepoints error deprecated# Enable TCP/IP connectionsinterface ssl library STAFTCP option Secure=Yes option Port=6550interface tcp library STAFTCP option Secure=No option Port=6500# Set default local trusttrust machine local:/local level 5# Add defaul

13、t service loaderserviceloader library STAFDSLSSERVICE STAX LIBRARY JSTAF EXECUTE STAF/Config/STAFRoot/services/stax/STAX.jar OPTION J2=-Xmx384mSERVICE EVENT LIBRARY JSTAF EXECUTE STAF/Config/STAFRoot/services/stax/STAFEvent.jar注册服务?当提出请求时,它们允许动态的服务注册,所以你不必改变STAF设置文件去注册一项服务。1 STAF提供的服务包括:1.1 STAX服务 S

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

15、rvice)-由发生的事件来驱动进程通信,从而执行相关的STAF命令。1.4名字空间服务(Namespace Service)-为了变量永久仓库的存储和搜寻而设定名字空间层次。1.5计数器服务(NamedCounter Service)-针对特定的名字来动态地管理其计数器。1.6 计时服务(Timer Service)-一台机器周期性地收到另一台机器发来的消息。1.7 邮件服务-将邮件消息发送给一批接收者。2.1 STAFProcSTAFProc is what starts STAF running on a machine.STAF作为一个后台进程运行于每个系统中。如果,你需要在办公机器、实验室的5台机器上运行STAF,必须在6个系统上都安装STAF。在这种环境下使用STAF,必须在所有的机器上都开启STAFProc。SyntaxSTAFProc STAF Configuration FileExamplesSTAFProc d:stafbinmystaf.cfgWarning: In order to stop the STAFProc daemon proces

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号