前言
STAF/STAX 是由 IBM 開發的自動化測試運行環境,由于其跨平臺和擴展性強的特點,在各種測試工作中被越來越多的使用,但是它也存在流程復雜,操作不便等缺點。而 LAMP 是基于Linux,Apache,MySQL 和 PHP 的開源網絡開發平臺,PHP 可用 Perl 或 Python 代替。Linux+Apache+MySQL+Perl/PHP/Python 常被放在一起使用,來搭建動態網站或者服務器的開源軟件,他們擁有了越來越高的兼容度,共同組成了一個強大的 Web 應用程序平臺。LAMP 具有搭建快捷,界面友好等特點。為了提高測試運行效率,提供良好的使用體驗,我們開發了基于LAMP+STAF/STAX 的自動化測試框架并應用在 WVS 產品的測試中。該框架中前端是 LAMP 實現的動態網站,后端是 STAF/STAX 服務及腳本。我們還利用 STAF 的參數導入特性實現了多任務的自動執行。本文將對基于 LAMP+STAF/STAX 的自動化測試框架的功能特性,體系結構,以及應用在WVS 產品測試中的拓撲結構,設計實現和配置使用進行介紹和分析。
功能特性
該框架不僅利用了 STAF/STAX 的自動化功能,還利用了 LAMP 的強大 Web 應用能力,提供了豐富的自動化測試功能和可擴展特性?傮w來說,主要有以下功能特性:
上層應用邏輯和底層自動測試實現松耦合
自動化測試功能可擴展性強,支持多任務執行
支持遠程程序調用
方便友好提交測試任務
可實時監控測試任務和 STAX 運行情況
歷史測試記錄可維護
體系結構
該框架符合 MVC 的三層結構,主要的功能模塊都在控制層,包括提交和監控測試任務,監控 STAX 運行,支持多任務執行,維護歷史測試記錄等。在該框架中,表示層和控制層的功能實現是以 PHP 形式存在,采用 MySQL 作為數據容器,Apache Server 作為 Web Server,另外在控制層中關于自動化測試的功能實現是以 xml 形式存在,它是被實現層中的 STAF/STAX 所調用。它的體系結構如下圖所示:
MILY: Arial">圖 1. LAMP+STAF/STAX測試框架結構圖
拓撲結構
我們把該框架應用在了 WVS 產品的自動化測試中,在這個測試中,我們需要更改 WVS 的配置并對其進行重啟,執行 Tester 機器上的腳本,向 Voice Enabler 所在的機器發送 Sip 請求,然后 Voice Enabler 會建立與 WVS 機器的 RTSP 連接以獲取其語音識別和語音合成服務,測試結束后再從 WVS 機器拷貝日志進行分析。我們希望這一切都用 STAF/STAX 控制自動完成。因此在所有的機器上都安裝了 STAF。另外我們把對測試進行前端控制的 LAMP 軟件和代碼也配置在了 Tester 機器上,以充分利用其系統資源。對應的,Tester 機器的 STAF 需要安裝 STAX 服務來運行本地的 STAX 腳本。該系統的部署圖如下所示:
圖 2. LAMP+STAF/STAX 網絡拓撲
設計實現
關于 LAMP 的部分,這里會給出一些應用示圖和代碼示例,關于 STAF/STAX 中的一些功能給出代碼示例,僅供參考。
提交測試任務:
該應用提供了 GUI 方式的任務提交,在提交表單中可以選擇平臺,版本信息,需要運行的用例類型,任務的名字等,方便快捷。如下圖所示
圖 3. 提交測試任務頁面
維護歷史測試記錄:
文章來源于領測軟件測試網 http://www.kjueaiud.com/