STAF全称是Software Testing Automation Framework,如其官网(http://staf.sourceforge.net/)所说,STAF是一个开源、跨平台、支持多语言的自动化测试框架,它围绕于组件重用的理念,通过服务调用(比如Process Service、Resource Manage Service、Logging Service、Monitoring Service等)帮助我们省去繁琐的跨平台的自动化框架的建设工作,而我们只需集中精力在自身自动化实施上。

简而言之,STAF就是一个在不同机器、不同的操作系统之间提供一个沟通通讯的平台。STAF利用其开源的优势,经历了最近几年的发展,已经越来越成熟,其具有以下特点:
1.       简单易用,可快速搭建一个跨平台自动化测试环境。
2.       开源,易于扩展,用户可以方便的在STAF中创建一个新的服务。
3.       环境要求低。支持多种平台多种操作系统。
4.       支持多种语言,可以在Java,Linux Shell , C/C++,Python,Perl等各种语言中调用

一、原理

假设我们有2台机器 A和B,A是主控机,如下图所示:
 

由上图可以看出,机器A和B都安装了STAF,并且相互配置了信任关系。那么用户就可以通过在机器A上调用STAF的Service 来实现与机器B的相互通讯。如传输文件、操作机器B等等。所以,STAF的作用实际上就是提供机器之间的通信通道并提供基于这个通道的基础服务。

二、多层封装概念

通过上面的介绍,我们了解了STAF是一个可重用并对各种应用提供广泛支持的基础框架。于是,就有了根据不同应用产生的不同封装。比如我们构造了一个复杂的分布式测试环境,我们可以单独通过STAF将我们的测试任务分发到不同的测试环境去执行,但如果测试任务太多,并且是不断添加新的任务的进来,单独依靠STAF就不利于测试任务的执行、管理与维护了。从而也就引入STAX的概念。如下图所示:

由上图可以看出,机器A安装了STAF/STAX,那么用户可以把一批STAF Service调用通过XML格式写在一个文档里,然后由STAX调用这个文档并翻译成STAF Service通过STAF传递给机器B执行。

另外,在实际测试中,有些工作光靠STAF是完不成的。我们往往需要利用一些工具来完成自动化测试。如Robot。这就需要提供一个自动化测试工具与STAF框架之间的接口。SAFS(Software Automation Framework Support)就是干这个的。在SAFS里,引入了关键字驱动(keyword-driven)和数据驱动(Data-Driven)的概念。通俗点说,SAFS就是为了给第三方软件提供支持,将一些常用动作(Action)进行封装。并提供对大量数据操作的接口。如下图:

目前基于SAFS的成熟应用接口是RRAFS(Rational Robot Automation Framework Support)。现在已经支持下列第三方软件:

IBM Rational Robot

IBM Rational Functional Tester

SAFS Image-Based Testing

Mercury Interactive WinRunner
     
三、服务(Services)

1. 服务(Services)概念:STAF是基于服务(Services)来构建自动化框架的,服务就是STAF的可重用组件,服务还是一系列功能的集合。 STAF是一个后台程序,在STAF中使用的所有组件都是服务,STAF提供轻量级分发机制,负责将请求转发给这些服务。

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

2. STAF 常见服务列表:

2.1 Delay Service: 内部服务,在调用的程序传递返回值前等待一个指定的时间
2.2 Diagnostics (DIAG) Service :内部服务,用于记录或者列出诊断数据
2.3 Echo Service :内部服务,提供类似于Ping服务的功能,不同的是Echo允许返回指定的字符
2.4 File System (FS) Service :内部服务,可以对文件进行复制、删除、查看等操作
2.5 Log Service :外部服务,用于日志的记录和查看
2.6 Monitor Service :外部服务,提供运行监控功能
2.7 Ping Service :内部服务,用来检测远程STAF是否在运行
2.8 Process Service :内部服务,用来调用外部程序,如调用windows 命令 CMD/NOTEPAD等。
2.9 Resource Pool (ResPool) Service :外部服务,提供查看、创建、删除等针对资源池的管理或操作
2.10 Semaphore (SEM) Service :内部服务,提供mutex和event信号操作
2.11 Zip Service :外部服务,提供压缩与解压操作

STAF基础用法及简单配置

1.       基础用法
STAF [-verbose]  <Endpoint>  <Service>  <Request>
-verbose 指定输出采用verbose模式,verbose是一种数据结构
<Endpoint> 操作对象IP。指定目标STAF系统,由STAFProc解析以便确定是在本地处理还是发送到远端STAF系统。本机的话可直接写local。
<Service> 指定要调用的服务
<Request> 调用服务的所需的参数
STAF的返回值:当服务处理结束将返回两类数据,一是表示服务处理结果的返回码既服务是成功还是失败,二是该服务返回的特定数据。
 
2.       STAF的简单安装配置

我们假设有2台机器,机器A是windows机器,IP是10.2.5.100,机器B是Linux机器,IP是10.2.5.101

1.       安装包下载
从http://staf.sourceforge.net/getcurrent.php 下载所需安装包,有Windows、Linux、Solaris、Mac等不同平台不同的版本的安装包。如果机器上未安装JDK,可以下载含JDK的安装包。

2.       Windows 下的安装
2.1 在windows平台上,双击STAF的安装包,按照提示进行安装即可.
2.2 修改STAF安装目录/STAF/bin中的STAF.cfg文件,配置机器间的信任关系。把Linux机器的IP配置进config文件。如下:

  1. # Set default local trust

  2. trust machine local://local level 5

  3. trust machine 10.2.5.101 level 5

2.3 重新启动STAFProc
2.4 在CMD下键入下列命令来确认STAF已经安装正确:
staf local service list

3.       Linux 下的安装
注意,有的Linux版本需要先安装C库,否则STAF起不来。参考下载地址:
http://rpm.pbone.net/index.php3/stat/4/idpl/2790009/com/libstdc++-3.4.5-2.i386.rpm.html 
Linux下的STAF有两种安装模式,一种是直接下载bin包进行安装,另一种则是下载tar包进行安装,以tar包安装为例:
3.1. 解压安装包:
tar xzvf STAF331-linux.tar.gz
3.2 解压后会出现一个STAF文件夹,进入该文件夹
./STAFInst
进行安装,默认会被安装到/usr/local/staf下

3.3   配置环境变量,将下列代码加入到要运行STAF的用户名目录下.bash_profile文件里:

copy

  1. PATH=/usr/local/staf/bin:$PATH

  2. export PATH

  3. LD_LIBRARY_PATH=/usr/local/staf/lib

  4. export LD_LIBRARY_PATH

  5. CLASSPATH=/usr/local/staf/lib/JSTAF.jar:/usr/local/staf/samples/demo/STAFDemo.jar

  6. export CLASSPATH

  7. STAFCONVDIR=/usr/local/staf/codepage

  8. export STAFCONVDIR

  9. STAFCODEPAGE=LATIN_1

  10. export STAFCODEPAGE

3.4 修改STAF安装目录/usr/local/staf/bin目录下的STAF.cfg文件,配置机器间的信任关系。把Windows机器的IP配置进config文件

  1. # Set default local trust

  2. trust machine local://local level 5

  3. trust machine 10.2.5.100 level 5

3.5   启动STAFProc
守护进程启动STAFProc输出log到stafproc.out   nohup /usr/local/staf/bin/STAFProc > /usr/local/staf/stafproc.out

3.6 确认STAF已经安装正确:
staf local service list

4.       测试机器A、B的STAF是否配置成功
在机器B上输入如下命令,执行后机器B则会启动记事本:
STAF 10.2.5.100 PROCESS START COMMAND notepad

转载于:https://www.cnblogs.com/lzpblog/p/8597376.html

自动化测试框架STAF介绍相关推荐

  1. staf linux运行模式,IBM 自动化测试框架STAF介绍

    这个测试框架,不仅仅是平时所谓的自动化测试框架,比如关键字驱动还是数据驱动的那种类型的.他分两部分功能:1.跨平台服务2.自动化测试服务. 跨平台服务,比如用一台机器,来把你的build部署到各种不同 ...

  2. 软件自动化测试框架STAF

    软件自动化测试框架STAF 一.什么是STAF STAF(Software Testing Automation Framework)是一个由IBM开发的开源.跨平台.支持多语言且基于可重用的组件来构 ...

  3. 跨平台测试框架--STAF介绍

    作者:洪流 STAF全称是Software Testing Automation Framework,如其官网(http://staf.sourceforge.net/)所说,STAF是一个开源.跨平 ...

  4. 软件自动化测试框架STAF概述

    闲话不多说,直接入主题 一.什么是STAF STAF(Software Testing Automation Framework)是一个由IBM开发的开源.跨平台.支持多语言且基于可重用的组件来构建的 ...

  5. 前端自动化测试框架Jest介绍和使用

    在实际项目的自动化测试过程中,如果只有这两个方法,很显然,是远远不够的,这时候,就需要我们对之前的方法进行扩充,同时还有很多自动化的机制需要集成进去.这时候 Jest 闪亮登场! Jest 框架介绍 ...

  6. python单元测试框架unittest介绍和使用_Python+Selenium框架设计篇之-简单介绍unittest单元测试框架...

    前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest. unittest是一 ...

  7. 自动化测试、自动化测试框架和云测试相关论文列表

    论文列表 基于Android系统的自动化测试用例的实现和优化,彭洪超,南京邮电大学,2020; 智慧社区应用系统自动化测试设计与实现,贾秀秀,南京邮电大学,2020:导师:杨龙祥; Web和App软件 ...

  8. python3使用staf问题_转载—越来越强大的SAFS/STAF/STAX自动化测试框架

    IKkGT*kC0STAF+STAX自动化测试框架的通用性更强大,适合各类应用系统,不仅适合B/S结构,而且还适合C/S结构的应用.STAF+STAX是一种分布式远程调用体系,支持跨平台和多语言的自动 ...

  9. Appium APP UI自动化测试框架介绍

    APP UI自动化测试同样可以使用unittest框架,与web的UI自动化类似 整个自动化流程介绍 1) 会先从手工用例里面抽离出要做自动化的用例,在测试用例里面会加一个执行方式的标签,标明是手动还 ...

最新文章

  1. 数据结构之树与二叉树的应用:哈夫曼树(最优二叉树)
  2. 猪场管理网站php,某养猪场网站整站 v1.1
  3. SQL Server 网络协议和 TDS 端点
  4. 数据结构算法设计题汇总
  5. Redhat开机丢失引导
  6. MacBook连接打印机-惠普HP LaserJet Pro MFP M427fdn 连接方法
  7. 这就是中国80后!!!
  8. 彻底解决Android Studio Minimum supported Gradle version is X.Y.Z. Current version is x.y.z.问题
  9. 【转】Power System 中基于 VIOS 的虚拟以太网实现
  10. 软件外包的合同要怎么签?
  11. 卡片互动悬停下载动画
  12. tomcat+eclipse +mysql搭建JSP开发环境
  13. 用easyx做推箱子小游戏
  14. 手淘启动页全面屏和虚拟键适配
  15. NotePlan for Mac如何修复iCloud同步问题
  16. 全球三效催化剂回收行业调研及趋势分析报告
  17. 机器学习其他常用技术
  18. 【signal】傅里叶分析和FFT蝶形算法
  19. Linux命令和实例大全
  20. 家校互联:蓝牙短信帮你搞定

热门文章

  1. html鼠标各种坐标,HTML坐标系与鼠标事件坐标
  2. 基于I2C/SPI总线的温湿度采集与OLED显示
  3. 明基PD2710QC测评
  4. 历年诺贝尔生理学或医学奖
  5. Neo4j 启动报错 Server shutdown initiated by request
  6. vue 实现导出excel或文件两种方法
  7. 为什么大学老师只教c语言,开挂的相声演员:做大学老师,主讲计算机C语言,课堂爆笑不断!...
  8. OM_销售订单的四个主要环节和每个环节用到的常用表
  9. JAVA学习记录(冲冲冲)
  10. vue 、前端rsa加密遇到的问题,message too long for RSA