1、STAFProc进程
STAFProc 进程这个概念很重要,在上图中就是STAF Daemo进程(守护进程)。熟悉Linux或者Java的朋友可能对于守护进程这个概念不陌生,守护进程一般是一些运行在后台,进程级别很低的进程,且生命周期一般很长,主要监视系统的一些状态并在适当的时机做出一些操作。如JVM(Java虚拟机)中的垃圾回收器进程,则是运行在虚拟机里面的守护进程,其随着JVM启动而存在,不断的检测是否存在可回收的内存资源,并在适当的时候进行垃圾内存的回收。而在STAF中,也存在这种类型的进程,它就是 STAFProc进程,这种进程一般随着系统启动就开始运行,不断的监听来自其他对等断点STAF的请求,并在收到请求后调用相应的服务加载器(ServiceLoader)来加载相应的服务,如调用STAF中的Process服务来启动一个本地进程。
2、STAF服务(Service)
STAF是基于服务来构建自动化框架的,每个服务就是STAF的可重用组件,其通过STAFProc分派来的任务来实现其"人生价值"。在STAF中主要分为两种类型的服务,一种是内部服务(Internal Service),一种为外部服务(External Service)。
那么,上述两种服务有什么区别呢?内部服务的话则一般被集成到STAFProc,一般都是一些比较基本而常用的服务;而外部服务则是需要动态载入,其可执行码不在STAFProc中,一般都在外部Jar中或者外部DLL库中。其实,这个对于Java熟悉的朋友比较好理解,我们Java程序JdK装完后可以使用的那些包(Package)就相当于内部服务,而当我们需要进行一些特殊开发的时候,往往需要引入一些第三方库(如开发蓝牙服务的 BlueCover.jar),这些就好比外部服务。
3、内部服务
有如下常见内部服务:
服务名称 | 作用 |
DELAY | 可以使得服务得到延迟一段时间。应用场景:在执行一个耗费时间的任务时候,在进行下一步操作前,需要延迟等待一段时间 |
PROCESS | 可以启动、停止或者查询进程,如执行一个指定的测试脚本程序等 |
PING | 通过该服务检测远程或者本地机器是够通讯的上 |
SERVICE | 该服务可以列出机器上可以使用的服务 |
SHUTDOWN | 该服务用来关闭STAFProc进程,好处在于通过该命令关闭STAFProc,可以释放进程的所占用的资源 |
FILE SYSTEM | 该服务提供网络之间的文件拷贝服务,例如从本机拷贝一些文件到目标测试机上 |
4、外部服务
外部服务一般需要到STAF官网去下载服务组件包(网址为http://staf.sourceforge.net/),一般服务组件包下完后还需要一些配置,这个在下篇文章会以STAX为例介绍,先列出一些常用的外部服务
服务名称 | 作用 |
STAX | 一个基于XML的执行引擎,在XML中定义测试工作流,可以实现并行执行、嵌套测试用例、控制运行时间等,STAX支持Java 和 Python 模块 |
ResPool | 用于日志的记录和查看 |
Monitor | 提供查看、创建、删除等针对资源池的管理或操作 |
Zip | 提供压缩与解压 |