您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 >
開源的軟件自動化測試框架STAF使用特色
作者:網(wǎng)絡轉(zhuǎn)載 發(fā)布時間:[ 2013/12/11 13:20:51 ] 推薦標簽:

        因為工作關系,兩年前本人曾調(diào)研過STAF軟件,當時想為VcTester工具構造一個具有對等通信關系的IPC組件,盡管終還是棄用STAF,改用自行開發(fā)的SRPC組件,不過仍覺得STAF是不錯的自動化控制框架,尤其是跨機控制,用起來比較方便,而且它是開源的。

關于STAF
        STAF(The Software Testing Automation Framework)是發(fā)端于IBM的自動化測試框架,如果我沒記錯的話,2000年的時候STAF有版本了,不過那時的STAF比較簡單,做不了多少事情。過去這么多年,STAF現(xiàn)已發(fā)展成一個龐大體系了。

        STAF主頁(http://staf.sourceforge.net/)對該軟件介紹如下:

        STAF是開源、跨平臺、支持多語言的自動化測試框架,它圍繞于組件重用的理念,通過服務調(diào)用(比如處理調(diào)用、資源管理、登陸、監(jiān)視等)幫助大家省去繁瑣的自動化架構建設工作,大家只需集中精力在自身自動化實施上。STAF為自動化測試建立了基礎,在高層解決方案提供一種可插撥的機制,支持多種平臺與多種語言。

        使用STAF可快速構造自動化測試環(huán)境,STAF的服務調(diào)用系統(tǒng)也讓大家創(chuàng)建自動用例與管理自動用例更加方便。STAF在功能級別實施服務調(diào)用,各個服務端點(稱作STAF客戶端)是對等的,從一個端點可直接調(diào)用另一端點(在另一臺機器運行的程序)提供的服務。

        換另一個角度看,STAF是一種分布式遠程調(diào)用體系,它具有如下特色:

Ø         將環(huán)境需求小化(包括硬件與軟件)

Ø         在各種語言中都很容易使用,包括Java,C/C++,Rexx,Perl,TCL,及命令行shell環(huán)境

Ø         易于擴展,讓用戶能方便的創(chuàng)建一個服務插入到STAF體系中

        STAF比較適應需要構造復雜測試環(huán)境的場合,復雜測試環(huán)境通常是分布式的,通過STAF將測試任務分發(fā)到不同的測試環(huán)境去執(zhí)行,可以方便的測試機的測試腳本,可以方便的收集測試結(jié)果,另外,執(zhí)行引擎STAX(Software Test Automation eXecution Engine)讓STAF的使用變得更簡單,測試人員只需要配置XML文件便實現(xiàn)STAF任務管理。

幾個概念
服務(Services):

        STAF是基于服務(Services)來構建自動化框架的,服務是STAF的可重用組件,服務還是一系列功能的集合。

        如何理解STAF與服務的關系?STAF是一個小巧的后臺程序,在STAF中使用的所有組件都是服務,STAF提供輕量級分發(fā)機制,負責將請求轉(zhuǎn)發(fā)給這些服務。

        STAF中服務分兩種:Internal (內(nèi)部服務)和 External(外部服務)。內(nèi)部服務被集成進 STAFProc,提供一些關鍵性的功能,比如數(shù)據(jù)管理與同步,外部服務則由 STAFProc 動態(tài)裝入,通過共享庫(shared libraries)來訪問。

STAF中常見服務有:

Ø         Process Service:這是內(nèi)部服務,用來調(diào)用外部程序

Ø         File System Service:這是內(nèi)部服務,可以對文件進行復制、刪除、查看等操作

Ø         Log Service:這是外部服務,用于日志的記錄和查看

Ø         ResPool Service:這是外部服務,提供查看、創(chuàng)建、刪除等針對資源池的管理或操作

Ø         Monitor Service:這是外部服務,提供運行監(jiān)控功能

Ø         Sem Service:這是內(nèi)部服務,提供mutex和event信號量操作

Ø         Zip Service:這是外部服務,提供壓縮與解壓

Ø         Ping Service:這是內(nèi)部服務,用來檢測遠程STAF是否在運行

請求/響應:

        STAF的服務以字符串形式表達,每個請求都有三個參數(shù)(系統(tǒng)、服務、參數(shù)),第一個參數(shù)指示目標STAF系統(tǒng),該參數(shù)由STAFProc解析以便確定是在本地處理還是發(fā)送到遠端STAF系統(tǒng),第二個參數(shù)指示調(diào)用哪個服務,第三個參數(shù)運行服務的參數(shù)。當服務處理結(jié)束將返回兩類數(shù)據(jù),一是表示服務處理結(jié)果的返回碼,二是服務返回特定數(shù)據(jù)。

執(zhí)行引擎:

        STAX是基于STAF的執(zhí)行引擎,它采用XML格式描述。在XML文件中可定義測試工作流,可以實現(xiàn)并行執(zhí)行、嵌套測試用例、控制運行時間等,STAX支持Java 和 Python 模塊。

STAF與VcTester
        前兩年我們調(diào)研STAF是想拿它構造本機跨進程的通信機制,后來發(fā)現(xiàn)STAF無法滿足我們的要求,在本機的IPC我們要求更精細,進程之間要支持更實時的響應能力,通信包可能很小,也可能很大,我們需要一種能平滑自適應系統(tǒng),對大消息通信,還應自動改由文件方式傳遞,此外,跨進程服務的啟動與關閉、重起等操作,我們有更精細要求。所以,我們自行開發(fā)一種基于共享內(nèi)存通信的SRPC組件,在它之上再疊加跨進程MVC機制,這是大家使用VcSmith或VcTester看到的RemoteUI功能。

        當然,這里我講的是STAF的本地服務,STAF的跨機測試控制無疑非常強大,適應平臺與編程接口都很豐富。所以,后續(xù)VcTester版本在向自動化測試延伸后,我們將考慮提供基于STAF插件結(jié)構的服務調(diào)用機制。

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd