所謂自動化測試框架,可以解釋為自動化測試的整體解決方案,是由一些假設、概念和為自動化測試提供支持的系統及其最佳實踐等構成的集合。對不同的應用領域或不同的測試水平,自動化測試的框架具有不同的構成,但我們必須清楚如何滿足自動化測試的基本要求,了解自動化測試框架的基本構成,從而在此基礎上,根據自己組織的實際情況來進行擴充,從而構造適應性更強、效率更高、功能更強的自動化測試框架。
為了能開展自動化測試的工作,首先需要基礎設施(infrastructure)來支撐測試工具的運行,這包括Web 服務器、郵件服務器、FTP 服務器等。其次是執行自動化測試,要有一套機制來保證測試腳本的執行。具體地說,就是先建立測試環境,創建和執行測試套件,然後獲取執行狀態並給出測試結果報告。根據這個分析,可以描述一個自動化測試框架的雛形,如圖2-11 所示。
圖2-11 軟件自動化測試框架的雛形
圖2-11 中的雛形給出了自動化測試框架的基本構成要素,包括執行器、腳本管理器、報告生成器等,也比較清楚地描述了這些要素之間的關系。但是,這個框架還沒給出其他一些必要的信息,例如:
測試腳本的層次性,如何分離業務邏輯和系統基本操作?
如何實現自動化測試工具的接口?
如何實現被測試系統的對象映射?
如何事先安排測試任務?
如何管理有效測試資源?
如果要在測試腳本上分離業務邏輯和系統基本操作,必須將各種基本操作封裝為特定的關鍵字,每個關鍵字對應一個函數,而業務邏輯可以由關鍵字和參數來描述,即可以通過圖2-12 來描述這種腳本結構。
圖2-12 關鍵字驅動腳本框架示意圖
事先安排測試任務,也是非常重要的。例如,測試人員在下班前將測試任務安排好,測試實際執行可以在晚上9 點鐘以後或得到新的軟件包後自動開始。這樣,測試人員在第二天上班前就可以得到測試報告。安排完任務,還需要開發具有相應觸發機制的引擎(Engine/ Cron Job)來執行測試任務。它負責完成自動部署軟件包、向各台遠程測試機器分發腳本並啟動測試工具等工作。對於這部分,可以用圖2-13 來描述,其中底層的基礎設施可以由STAX 實現。
圖2-13 自動化測試任務的安排和執行