自動化
測試
已經越來越深入人心,其重要性也是不言而喻的。效能測試
中大規模併發的要求,壓力測試中的大規模壓力的模擬,回歸測試中的大規模測試用例的反覆執行都要求實現乙個高可用、高可擴充套件性的自動化測試框架體系。因此,如何在乙個開放的框架下,構建乙個完整的自動化測試體系是我們需要研究的方向。
乙個完整的自動化測試框架體系包含以下幾個部分:
1、自動化測試框架;
2、測試指令碼以及測試資料管理;
3、測試指令碼的執行管理系統;
4、測試結果的顯示與分析系統。其中最重要的是自動化測試框架部分。
第一部分,自動化測試框架。自動化測試框架要解決的問題,從本質上來說,是實現分布式資源透明化的過程。由於效能測試、壓力測試的要求,我們往往需要構建乙個分布式的測試環境,在這個分布式的測試環境中,我們需要多種測試平台(例如:多台windows,多台linux等)。自動化測試框架的作用就在於將分布式環境中的各種資源變成相應的服務物件。例如一台windows機器,在自動化測試的框架中,我們看到的將不再是一台windows機器,而是繫結到某乙個ip位址上的乙個服務物件。通過這個物件,我們可以通過乙個通用的呼叫方法(本地呼叫乙個遠端提供的方法,需要採用物件對映的技術),告訴這個物件,讓它做我們希望它去做的事情,例如啟動乙個指定的測試指令碼(這個測試指令碼可能是我們日常寫的某乙個測試用例,也可能是其他
第二部分,測試指令碼及測試資料的管理。首先要選擇一種合適的自動化指令碼語言。一般來說,需要考慮以下幾個方面:(1)高可讀性,(2)無需編譯,(3)可擴充套件性,(4)強大的第三方支援,尤其是對各種資料來源的支援。我們可以採用cvs或者svn的方式來實現對測試指令碼和測試資料的管理。在這裡,主要依靠高度組織化的目錄結構來實現,尤其是需要和實際測試過程中的測試套件,測試模組以及測試用例的組織結構進行匹配,分級管理。形成乙個完整的測試指令碼和測試用例的資源庫。對於測試指令碼的編寫,有一些基本的要求:1、形成一套測試指令碼的編寫規範;2、測試指令碼採取分層設計思想,持久層(資料資源庫,物件資源庫,統一io),邏輯層(封裝基本業務邏輯,實現api級呼叫),指令碼層(實現測試用例過程,主要是描述測試步驟)。通過這些,測試工程師編寫測試指令碼將會變得十分輕鬆,測試的效率也會有大幅度的提公升,大規模回歸,甚至是在第一輪測試就實現自動化測試也不再是夢想。
第三部分,測試指令碼的執行管理系統。大量的測試指令碼編制好了以後,乙個很重要的步驟就是大批量的執行這些測試指令碼。通過cvs或者svn的管理,我們生成了乙個測試資源庫,乙個測試用例將是乙個測試指令碼。測試指令碼執行管理系統的目的,就是要在使用者定製的時間去執行使用者選定的測試用例。測試指令碼執行管理系統也應該能動態的追蹤到當前正在執行的任務的狀態,例如執行百分比等等;還可以實現多使用者管理,例如同時執行多個使用者提交的測試需求。同時,測試指令碼管理系統還應該實現測試環境自動部署的功能。一般來說,我們在進行大規模的自動化測試之前,需要準確部署測試環境,這裡就要求用最新的**版本來進行測試。因此,測試環境的自動部署也是很重要的。
第四部分,測試結果的顯示與分析系統。通過統一的io呼叫,我們可以將測試過程中產生的錯誤資訊,日誌
資訊,以及測試結果動態的放到我們想要存放的地方。測試結果的顯示與分析系統正是基於這些資料進行處理的系統。每乙個測試用例在執行的過程中,需要輸出大量的日誌資訊,這些日誌資訊是非常重要的。通常,我們判斷乙個測試用例執行結束以後,是否有bug
,常常需要深入分析這些日誌資訊。在測試用例執行的過程中,不光要列印相關的測試資料,實際獲取到的資料,還要列印相應的測試步驟,這樣才便於對測試結果進行分析。至於顯示系統,主要是對測試結果的乙個分類檢索功能,可以生成各類報表,例如,乙個300個測試用例的模組中有多少通過的,有多少是失敗的等等。有乙個基本原則是很重要的,自動化測試不是為了自動化,而是為了發現bug。如果自動化測試不能發現bug,那麼花費大量的人力物力實現自動化,也是沒有什麼實際意義的。因此,深入收集測試用例執行的過程中產生的各種資訊是非常重要的。個人的實踐經驗表明,這些資訊對於發現bug起著至關重要的作用(測試步驟的描述也不容忽視)。
自動化測試體系不是乙個工具,一種自動化測試指令碼語言就可以實現的。它需要乙個完整的解決方案
才能實現。個人的實踐經驗表明,自動化測試框架的引入、強大的資源整合能力和有效的自動化測試體系的設計將是實現自動化測試的十分重要的因素。
自動化測試框架
可設計為五層 一 測試用例層 主要存放用例的指令碼,分為主指令碼和子指令碼。主指令碼用來控制各個子指令碼,實現指令碼間的資料傳遞。子指令碼是實現各個功能點的指令碼,同時也會提取出一些共用的方法,一般放在提取層中。主指令碼中可使用資料驅動來控制指令碼實現各種場景的流程,如silktest的test s...
自動化測試框架 自動化測試呼喚開發
週末參加了testage 測試時代 組織的乙個專家討論會。主要討論測試自動化。說是專家討論會,我參加實在是慚愧,我對測試的理解實在是太淺薄了。只是因為在部落格上發表了一些謬論才收到邀請。想著可以幫助公司去接受一些新的思想,而自己也可以結識一些朋友,便去了。對於測試時代的會議組織,我以為定位和思路還是...
自動化測試框架指南
這 是我以前寫的一篇文章,用於整理自己對自動化測試的理解。當時寫這個文章的目的,是因為剛剛掌握qtp,又使用自動化測試參與公司乙個大專案的測試,結果 發現原來掌握qtp距離自動化測試還有很遙遠的路要走,原來一直以為掌握了qtp的指令碼編寫 可以寫出所有的測試方法指令碼則自動化測試就可以大功告成了。但...