QTP自動化測試框(轉自小強老師博客)

以下是自動化測試框架的建議,需要在以後的實踐中改進。自動化測試框架一般可以分爲上下兩個層次,上層是管理整個自動化測試的開發,執行以及維護,在比較龐大的項目中,它體現重要的作用,它可以管理整個自動測試,包括自動化測試用例執行的次序、測試腳本的維護、以及集中管理測試用例、測試報告和測試任務等。下層主要是測試腳本的開發,充分的使用相關的測試工具,構建測試驅動,並完成測試業務邏輯。

  一、自動化測試管理

  自動化測試用例的執行機制一般包括管理端和執行端,由管理端發出信號通知執行端開始執行相應的測試任務,從而執行相應的腳本進行測試,並將測試結果報告管理端。

  1.管理端

  管理端主要完成以下任務:運行控制的決策系統,負責建立並維護運行隊列,控制運行策略和信號燈;在管理端還必須維護一個測試任務的隊列,每個測試任務的開始執行的時間可能不同,狀態也不一樣,管理端根據這些標誌對其進行控制。

  2.執行端

  執行端根據管理端的決策系統,來執行運行隊列中的測試腳本,其中運行控制的執行系統,負責分配測試腳本,並按照指定策略啓動腳本等也是執行端的功能。

  二、自動化測試腳本開發

  1.測試驅動

  測試驅動是一個自動化測試框架的核心,其決定整個自動化腳本設計。當前比較流行的測試驅動有數據驅動和關鍵字驅動,使用不同的測試驅動,關係到腳本重用率,以及後期的可維護性。

  (1)數據驅動

  基於數據驅動的自動化測試框架是指測試驅動引擎從數據源獲取測試數據,然後將將數據以參數的形式傳遞給測試腳本,最後通過執行測試腳本,驗證測試結果,並將測試結果輸出。一般數據源與測試結果存儲在數據庫、Excel文件、Csv文件等。數據驅動主要優點是:測試腳本與測試數據的分離,當應用功能變更時,只需要修改該功能部分的腳本;執行測試用例的人員不需要了解測試腳本的實現,只關注測試數據表與測試報告表。而且測試腳本的執行是離散的,即非線性的,測試人員可以有選擇的執行測試用例。

  (2)關鍵字驅動

  關鍵字驅動的自動化測試框架是在數據驅動的基礎上進行改進,數據源裏包含的不只是數據,還有關鍵字,一個測試用例由一個或若干個關鍵字組成。每個關鍵字對應個不同的業務邏輯,例如,登錄、註銷等。數據表通過關鍵字,查找映射表,執行相關的腳本。

  (3)驅動引擎

驅動引擎是對數據表的數據進行分析,根據不同的測試數據或關鍵字調用相應測試腳本。驅動引擎還需完成一些測試環境初始化、全局參數設置、測試用例是否執行的判斷,以及測試報告的處理等。

2.測試腳本開發

  測試腳本開發必須通過詳細、合理的設計,要對腳本代碼進行劃分,腳本文件或數據文件分層管理。這樣有利於自動化腳本的開發與維護,從而節省自動化測試的投入成本,也使得不同測試人員或開發人員可以協調開發腳本。

  (1)腳本規範

  測試腳本的開發也要遵循編程的規則與標準,應該統一規劃,所有開發腳本的人員按照統一的規定進行編碼。除了編程本身規範,還考慮測試用例與庫函數名的命名,測試用例需要加上項目名稱,但公共的庫函數卻不需要,因爲公共的庫函數是獨立於項目的。例如,項目M4.1客戶端登錄測試用例可命名爲:TC_M4.1_client_login;讀取excel表的函數可命名爲:read_excel。

  (2)腳本劃分

  測試腳本的劃分,如何定義公共的腳本庫,不同模塊特有的腳本庫,以及直接構建測試用例的腳本。爲了方便以後腳本的維護問題,必須對腳本進行有效的分層,同時,提高了腳本的複用率。

  ① 公共類庫

  公共類庫包括所有模塊都可能用戶的操作方法,其抽象了不同模塊同性,比如操作excel表的方法、讀寫測試報告、驅動引擎等。

  ② 模塊特定類庫

  在模塊內部將可以爲該模塊共享使用的方法抽象出來,作爲一個公共類。它可以是一個單的邏輯操作,也比較獨立。比如客戶端登錄操作、控制檯登錄操作、控制檯更新操作等。

  ③ 測試用例腳本

  測試用例腳在最上層,它根據測試點進行設計,面向具體的應用。它可直接調用公共類庫或模塊特定類庫的方法,即調單個邏輯操作。它是單個或多個邏輯操作的集合,即一個測試用戶腳本。比如,在客戶端訪問資源的測試用例,它調用了客戶端登錄方法和訪問資源方法。

  (3)測試用例

  ① 測試用例粒度

  測試用例的粒度決定了用例模型級的複雜度,也決定了每一個用例內部的複雜度。應該根據每個系統的具體情況來把握各個層次的複雜度,在儘可能保證整個用例模型的易理解性前提下決定用例的大小和數目。用例不能太大,這樣一旦出執行測試用例出錯,不利於定位問題;但也不能太細化,太小則不方便執行。

  ② 測試用例與測試套件

  一個大型的項目有許功能模塊,必然會產生大量的測試用例,怎樣纔能有效的管理這些測試用例呢?這就需要創建測試套件,通過測試套件將測試某一個模塊或功能點的測試用例集合起來,方便運行與管理。例如,只驗證“用戶管理”模塊功能,則只需要執行“用戶管理”模塊套件即可。

  (4)腳本與html標記分離

  腳本與html標記分離使得在一定程度上腳本獨立於WEB頁面,腳本沒有直接的處理html標記,腳本代碼通過html映射表獲取賦有WEB頁面標記值的變量。WEB頁面標記包括html標記和頁面內容(文本或圖片等,這些都可能是判斷用例是否成功能的檢查點),當WEB頁面標記變更後,不需要在範圍的修改腳本。

  (5)選擇適合自動化測試的用例

  在編寫自動化測試腳本前,首先要確定哪些用例適合做自動化測試,因爲自化測試不像手工測試,它不能那麼智能,也沒有發發散思維。

  通常適合自動化測試的用例有:

  產品型項目。產品型的項目,新版本是在舊版本的基礎上進行改進,功能變不大的項目,但項目的新老功能都必須重複的測試。

  迴歸測試。迴歸測試是自動化測試的強項,它能夠很好的驗證你是否引入了新的缺陷,老的缺陷是否修改過來了。在某種程度上可以把自動化測試工具叫做迴歸測試工具。

  機械並頻繁的測試。每次需要輸入相同、大量的一些數據,並且在一個項目中運行的週期比較長。

  有一些交互性比較強,需要人工干預的操作,就不要指望通過自動化測試來完成了。例如,用戶使用DKEY登錄。

轉自小強老師51cto博客http://xqtesting.blog.51cto.com/4626073/808563

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章