如今軟件開發依賴于集體的開發和測試。對于部署和測試人員來說,如何從集中的代碼管理工具來獲取源代碼或者代碼的編譯包并且自動部署和測試變得非常重要。本文借助于 STAF(STAX) 和 FTP 以及 CVS 工具介紹如何自動從 FTP 或者 CVS 下載程序的更新包,并且部署到測試環境中。 本文首先對自動化測試框架Software Test Automation Framework (STAF)和Software Test Automation eXecution Engine (STAX)進行簡要的介紹,然后簡單介紹如何安裝和配置STAF(STAX)。其次本文將結合一個場景重點介紹STAF(STAX)如何利用CVS和FTP工具進行源代碼的下載、編譯、分發、部署和測試。最后本文列出了使用STAF(STAX)的經驗和教訓。
讀者可以從本文了解到 STAF(STAX) 的基本概念和用法。本文適合 STAF 的初學者。
1.STAF(STAX)
Software Test Automation Framework (STAF) 是開源、跨平臺、支持多語言并且基于可重用的組件來構建的自動化測試框架。它為自動化測試建立了基礎,并且提供了一種可插撥的機制支持不同的平臺和語言。STAF 采用點對點的實現機制,被用來減輕自動化測試的工作負擔,加快自動化測試的進程。在 STAF 的環境中,所有的機器都是對等的,沒有客戶端和服務器的區分。
Software Test Automation eXecution Engine (STAX)是基于 STAF 的執行引擎。它在 STAF 的基礎上,幫助用戶實現測試用例的分發、部署、執行以及結果分析。STAX 使用了三種技術:STAF, XML 和 Python。簡單來說,STAX 在 STAF之 上提供了一些接口,方便用戶來操縱STAF進行自動化測試的實現。
我們將簡要介紹一下 STAF 和 STAX 中所用到的概念和機制。
1.1 Services (服務)
STAF 基于可重用的組件來構建自動化測試框架,這些可重用的組件就是 Services(服務)。STAF 中所有的組件都是服務。服務是一系列功能的集合。STAF 本身是一個后臺程序 (STAFProc),提供一種輕量級的分發機制,負責把請求轉發給這些服務。
STAF 中的服務分為兩種:internal (內部服務)和 external(外部服務)。內部服務被集成進 STAFProc 中,提供一些關鍵性的功能,比如數據管理和同步。外部服務由 STAFProc 動態裝入,通過共享庫(shared libraries)來訪問。
STAF 提供了如下幾種常用服務:
1.2 請求-響應格式
每個服務都定義了它能接受的請求格式。STAF 通過請求來調用服務的功能,每個請求都以字符串的形式發送,這樣可以保證 STAF 能夠跨平臺的運行。 每個請求都有三個參數,以系統-服務-參數的形式出現。第一個參數表示此請求需要被發送到的 STAF 系統,這個參數被 STAFProc 解析以便確定請求應該被本地處理還是發送到其他的 STAF 系統。 當這個請求被發送到需要處理的 STAF 系統后,STAFProc 解析第二個參數來判斷哪個服務會被調用。最后,STAFProc 會把第三個參數轉發給需要調用的服務,服務處理這個請求。
當處理完請求后,服務會返回兩種數據:返回碼和特定于請求的信息。返回碼表示服務處理的結果。特定于請求的信息表示服務返回的具體數據,如果請求成功返回,這些信息將包括這次請求所請求的數據,如果請求出現錯誤,這些信息將包含額外的診斷信息。
完全使用字符串作為請求響應格式可以簡化 STAF 的很多方面,包括與其他語言的接口,服務之間的通信,跨平臺的操作等。 其他語言只需要通過一個接口 STAFSubmit() 來請求 STAF 的服務,并且只需傳遞三個字符串參數。服務之間也只需要通過字符串發送接收請求。
1.3 STAX
STAX 是基于 STAF 的執行引擎,它提供了一種 XML 格式的工作流語言。用戶可以編寫 XML 的腳本文件來通過 STAX 調用 STAF 的服務已完成自動化測試。用戶可以不需要和編程語言打交道就可以開發出自己的自動化測試環境。STAX 提供如下的功能:支持并行運行,用戶自定義的運行控制粒度,嵌套測試用例,控制運行時間,支持現有的 Java 和 Python 模塊等。STAX 還提供了一個圖形化的監控工具,通過這個工具,用戶可以清晰的看出測試運行的位置,狀態和出錯信息等。 下面我們將通過與 FTP 和 CVS 的協作完成自動化部署來展示 STAF 和 STAX 的功能。
原文轉自:http://www.anti-gravitydesign.com