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

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

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

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

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

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

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

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

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

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

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

幾個概念
服務(wù)(Services):

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

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

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

STAF中常見服務(wù)有:

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

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

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

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

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

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

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

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

請求/響應(yīng):

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

執(zhí)行引擎:

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

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

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

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