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

        因?yàn)楣ぷ麝P(guān)系,兩年前本人曾調(diào)研過STAF軟件,當(dāng)時(shí)想為VcTester工具構(gòu)造一個(gè)具有對(duì)等通信關(guān)系的IPC組件,盡管終還是棄用STAF,改用自行開發(fā)的SRPC組件,不過仍覺得STAF是不錯(cuò)的自動(dòng)化控制框架,尤其是跨機(jī)控制,用起來比較方便,而且它是開源的。 關(guān)于STAF
        STAF(The Software Testing Automation Framework)是發(fā)端于IBM的自動(dòng)化測(cè)試框架,如果我沒記錯(cuò)的話,2000年的時(shí)候STAF有版本了,不過那時(shí)的STAF比較簡(jiǎn)單,做不了多少事情。過去這么多年,STAF現(xiàn)已發(fā)展成一個(gè)龐大體系了。
        STAF主頁對(duì)該軟件介紹如下:
        STAF是開源、跨平臺(tái)、支持多語言的自動(dòng)化測(cè)試框架,它圍繞于組件重用的理念,通過服務(wù)調(diào)用(比如處理調(diào)用、資源管理、登陸、監(jiān)視等)幫助大家省去繁瑣的自動(dòng)化架構(gòu)建設(shè)工作,大家只需集中精力在自身自動(dòng)化實(shí)施上。STAF為自動(dòng)化測(cè)試建立了基礎(chǔ),在高層解決方案提供一種可插撥的機(jī)制,支持多種平臺(tái)與多種語言。
        使用STAF可快速構(gòu)造自動(dòng)化測(cè)試環(huán)境,STAF的服務(wù)調(diào)用系統(tǒng)也讓大家創(chuàng)建自動(dòng)用例與管理自動(dòng)用例更加方便。STAF在功能級(jí)別實(shí)施服務(wù)調(diào)用,各個(gè)服務(wù)端點(diǎn)(稱作STAF客戶端)是對(duì)等的,從一個(gè)端點(diǎn)可直接調(diào)用另一端點(diǎn)(在另一臺(tái)機(jī)器運(yùn)行的程序)提供的服務(wù)。
        換另一個(gè)角度看,STAF是一種分布式遠(yuǎn)程調(diào)用體系,它具有如下特色:
Ø         將環(huán)境需求小化(包括硬件與軟件)
Ø         在各種語言中都很容易使用,包括Java,C/C++,Rexx,Perl,TCL,及命令行shell環(huán)境
Ø         易于擴(kuò)展,讓用戶能方便的創(chuàng)建一個(gè)服務(wù)插入到STAF體系中
        STAF比較適應(yīng)需要構(gòu)造復(fù)雜測(cè)試環(huán)境的場(chǎng)合,復(fù)雜測(cè)試環(huán)境通常是分布式的,通過STAF將測(cè)試任務(wù)分發(fā)到不同的測(cè)試環(huán)境去執(zhí)行,可以方便的測(cè)試機(jī)的測(cè)試腳本,可以方便的收集測(cè)試結(jié)果,另外,執(zhí)行引擎STAX(Software Test Automation eXecution Engine)讓STAF的使用變得更簡(jiǎn)單,測(cè)試人員只需要配置XML文件便實(shí)現(xiàn)STAF任務(wù)管理。
幾個(gè)概念
服務(wù)(Services):
        STAF是基于服務(wù)(Services)來構(gòu)建自動(dòng)化框架的,服務(wù)是STAF的可重用組件,服務(wù)還是一系列功能的集合。
        如何理解STAF與服務(wù)的關(guān)系?STAF是一個(gè)小巧的后臺(tái)程序,在STAF中使用的所有組件都是服務(wù),STAF提供輕量級(jí)分發(fā)機(jī)制,負(fù)責(zé)將請(qǐng)求轉(zhuǎn)發(fā)給這些服務(wù)。
        STAF中服務(wù)分兩種:Internal (內(nèi)部服務(wù))和 External(外部服務(wù))。內(nèi)部服務(wù)被集成進(jìn) STAFProc,提供一些關(guān)鍵性的功能,比如數(shù)據(jù)管理與同步,外部服務(wù)則由 STAFProc 動(dòng)態(tài)裝入,通過共享庫(kù)(shared libraries)來訪問。
STAF中常見服務(wù)有:
Ø         Process Service:這是內(nèi)部服務(wù),用來調(diào)用外部程序
Ø         File System Service:這是內(nèi)部服務(wù),可以對(duì)文件進(jìn)行復(fù)制、刪除、查看等操作
Ø         Log Service:這是外部服務(wù),用于日志的記錄和查看
Ø         ResPool Service:這是外部服務(wù),提供查看、創(chuàng)建、刪除等針對(duì)資源池的管理或操作
Ø         Monitor Service:這是外部服務(wù),提供運(yùn)行監(jiān)控功能
Ø         Sem Service:這是內(nèi)部服務(wù),提供mutex和event信號(hào)量操作
Ø         Zip Service:這是外部服務(wù),提供壓縮與解壓
Ø         Ping Service:這是內(nèi)部服務(wù),用來檢測(cè)遠(yuǎn)程STAF是否在運(yùn)行
請(qǐng)求/響應(yīng):
        STAF的服務(wù)以字符串形式表達(dá),每個(gè)請(qǐng)求都有三個(gè)參數(shù)(系統(tǒng)、服務(wù)、參數(shù)),第一個(gè)參數(shù)指示目標(biāo)STAF系統(tǒng),該參數(shù)由STAFProc解析以便確定是在本地處理還是發(fā)送到遠(yuǎn)端STAF系統(tǒng),第二個(gè)參數(shù)指示調(diào)用哪個(gè)服務(wù),第三個(gè)參數(shù)運(yùn)行服務(wù)的參數(shù)。當(dāng)服務(wù)處理結(jié)束將返回兩類數(shù)據(jù),一是表示服務(wù)處理結(jié)果的返回碼,二是服務(wù)返回特定數(shù)據(jù)。
執(zhí)行引擎:
        STAX是基于STAF的執(zhí)行引擎,它采用XML格式描述。在XML文件中可定義測(cè)試工作流,可以實(shí)現(xiàn)并行執(zhí)行、嵌套測(cè)試用例、控制運(yùn)行時(shí)間等,STAX支持Java 和 Python 模塊。
STAF與VcTester
        前兩年我們調(diào)研STAF是想拿它構(gòu)造本機(jī)跨進(jìn)程的通信機(jī)制,后來發(fā)現(xiàn)STAF無法滿足我們的要求,在本機(jī)的IPC我們要求更精細(xì),進(jìn)程之間要支持更實(shí)時(shí)的響應(yīng)能力,通信包可能很小,也可能很大,我們需要一種能平滑自適應(yīng)系統(tǒng),對(duì)大消息通信,還應(yīng)自動(dòng)改由文件方式傳遞,此外,跨進(jìn)程服務(wù)的啟動(dòng)與關(guān)閉、重起等操作,我們有更精細(xì)要求。所以,我們自行開發(fā)一種基于共享內(nèi)存通信的SRPC組件,在它之上再疊加跨進(jìn)程MVC機(jī)制,這是大家使用VcSmith或VcTester看到的RemoteUI功能。
        當(dāng)然,這里我講的是STAF的本地服務(wù),STAF的跨機(jī)測(cè)試控制無疑非常強(qiáng)大,適應(yīng)平臺(tái)與編程接口都很豐富。所以,后續(xù)VcTester版本在向自動(dòng)化測(cè)試延伸后,我們將考慮提供基于STAF插件結(jié)構(gòu)的服務(wù)調(diào)用機(jī)制。

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