【自動化測試】自動化測試框架設計要素
今天我們交流關於設計自動化測試框架時需要考慮的要素,這在初期對整個自動化測試進行架構時非常重要,好的設計將會使得後續的維護變得更輕鬆。
自動化測試框架類型
1、數字驅動
數據驅動最適合測試業務邏輯固定不變的應用程序,只有測試數據會變化。通常測試數據會被配置在外部文件或資料庫中。
2、關鍵字驅動
關鍵字驅動顧名思義,它提供了一系列通用的關鍵字,用戶通過調用這些關鍵字並輸入一些參數可以實現單個操作,比如,打開瀏覽器、打開某個網頁、點擊某個鏈接等等,然後通過組織這些關鍵字形成一個完整的測試流程。
3、混合型
混合型框架就是把數據驅動和關鍵字驅動整合起來,同時具備了兩者的優點。與關鍵字框架不同的是,這種框架通常會提供一些針對於特定應用程序的關鍵字,比如登錄、登出等。然後在完整測試流程的基礎上,再應用一層數據驅動,這樣就能使測試邏輯和測試數據更加靈活和可配置。
自動化測試框架設計要點
1、利用現有框架
如selenium、robotframework等
2、復用性
一個好的框架必須具有高度的可重用性。我們可以把一些單獨的操作組合成一些最常用的測試流程,比如,把「輸入用戶名」、「輸入密碼」、「點擊登錄」三個操作組合成一個關鍵字「登錄」。
3、代碼管理
自動化腳本也需要有配置管理,這樣才能更有效地對腳本的提交、修改、版本控制、基線化等操作進行管理,所以在設計框架的時候需要考慮結合配置管理工具,如CVS、VSS、SVN、GIT等。
4、可配置性
腳本的配置項應該放在外部文件中,像URL,路徑,版本信息等,從而能使腳本在不同的環境下運行。另外配置文件的路徑也不能寫死,應採用相對路徑,以保證框架能在不同的機器上順利運行。
當框架部署到不同的機器上時,會有不同的環境,要有能夠自動根據不同的系統環境完成必要配置的能力。舉個例子,比如一個selenium框架被部署到裝有不同瀏覽器的機器上,框架應當能根據當前系統上裝了哪些瀏覽器而分別運行它們。
5、對象庫
在自動化測試中遇到的大多數問題基本上都是由於對象的屬性變化導致的腳本失敗,所以,對象庫的維護能力對於一個框架來說十分重要。我們可以把對象庫作為一個共享資源,由專人進行維護。對象庫可以是一個外部的XML、Excel、資料庫等。
6、執行模式
- 執行一個單個用例
- 執行一個測試用例集
- 重新執行失敗的用例
- 根據其他的用例或用例集的運行結果執行相應的用例或用例集
7、狀態監控
在腳本執行的時候,框架應當能夠實時監控腳本的運行情況,如果碰到運行故障的時候應當能進行基本的容錯恢復處理,這樣的話不至於使腳本處在一個被block的狀態,從而浪費大量時間。
運行腳本前後也要保證測試環境的正確性,腳本開始前對測試環境進行初始化,腳本結束後對測試環境清理。
8、測試報告
不同的應用程序往往會有不同的測試報告的要求,有時需要把許多用例集的運行結果結合起來(總的運行報告)看,多少個成功,多少個失敗,通過率多少;有時又要看單獨一個用例的執行情況,哪一步失敗,失敗原因是什麼。
另一方面,多樣化的測試報告表現形式也是需要考慮的。Excel、word、web、pdf、...等形式可以根據實際項目需要來選擇,但不論做成何種形式都至少要保證測試報告的易讀、易訪問。
9、易調試
一般情況下,調試(debugging)在開發測試腳本的過程中會佔據大量時間,所以是否易於調試也是一個很重要的因素,直接影響到開發和維護框架的成本,不容忽視。
10、測試日誌
一個好的框架應當能在測試執行過程中生產足夠詳細的日誌信息(文字、截圖等),這對於調試的幫助很大,同時也能我們快速定位到問題所在,節省時間。
11、易用性
易學易用對於自動化測試框架來說也很重要,因為畢竟是要面向最終用戶的,如果框架很難上手,會失去用戶群體,那框架也就沒有存在的意義了。所以在保證易用性的基礎上,最好有一個詳細的框架說明文檔,對於新手來說幫助會比較大。
12、靈活性(擴展性)
靈活性是指框架應當能保證在目前的基礎上做二次開發的能力,這個其實跟軟體開發的標準是一樣的,預留足夠的可擴展性以便未來的版本升級。
框架本身還應具備良好的可擴展性,能夠方便的新增測試元素、測試邏輯等。
13、性能
框架設計不宜過於複雜,太複雜的框架會增加腳本的載入、運行時間,從而導致運行腳本的效率低下。所以在設計框架的時候,也要考慮到性能這一因素。
14、編碼規範
- 命名規範
- 注釋規範
- 日誌規範
- 代碼風格規範
推薦閱讀:
※軟體測試的具體概念有哪些?
※monkey 測試1
※軟體測試要學什麼?面試時哪些基本知識要掌握?
※黑盒測試
※3.掀起介面測試的蓋頭-HTTP初窺(二)