本文節選自
框架到底用來做什麼,最終的目的無非是將不同層次的物件和邏輯進行抽象和分離封裝,從而使得被測試程式的變更所導致的測試指令碼框架的變更維護工作量減少到最少。
原文對自動化測試架構做了如下四種分類:
1、資料驅動測試框架(the data-driven testing framework)
僅僅是將測試資料從測試指令碼中分離出來,開始了非混沌狀態的第一步。
2、測試指令碼模組化框架(the test script modularity framework)
測試指令碼中包含了各功能點中涉及到的控制項識別和業務邏輯操作,其中包含了外部測試資料的呼叫。
3、測試庫構架框架(the test library architecture framework)
將所有的針對測試系統本身的控制項識別和控制項支援的操作封裝在測試庫中,測試指令碼呼叫測試庫的同時傳遞外部的測試資料,測試庫的編寫由自動化測試開發工程編寫(可以不懂業務),負責控制項的變更和維護。
4、關鍵字驅動或表驅動測試框架(the keyword-driven or table-driven testing framework)
如果不懂自動化程式設計的普通測試工程師能不需要了解測試工具和框架本身的知識就能維護控制項物件和業務邏輯,這樣就可以將自動化測試工程的工作量進行很好的分攤。具體實施就是將控制項物件,動作,引數等等從框架或工具本身剝離出來放在普通excel**中,框架本身所要做的就是識別excel**中的這些控制項物件以及action。
模組化思想
庫思想
資料驅動思想
關鍵字驅動思想
1、所謂模組化思想,就是將乙個測試用例中的幾個不同的測試點拆分並且將其單個點的測試步驟進行了封裝,形成了乙個模組。
例如:乙個測試用例要對乙個登入程式進行測試,其中包括:使用者名稱輸入、密碼輸入、以及確定登入;
那麼就可以將使用者名稱輸入、密碼輸入、確定登入、取消登入四個操作分別封裝在四個不同的模組中。測試時,只需呼叫其模組即可。這樣的話,當乙個模組有變化,你只需單獨維護那個模組即可,也可以根據模組的不同組合成不同的測試用例。
2、所謂測試庫思想,就是模組化思想的昇華,其為應用程式的測試創造了庫檔案(可以是apis、dlls等),這些庫檔案為一系列函式的集合。其與模組化思想不同的是,其拓展了介面思想,即可以通過介面去傳遞引數,而不是乙個封死的模組,可以說是乙個多了乙個「門」的互動型模組。
例如:還是以上那個測試用例,只是將使用者名稱輸入、密碼輸入、確定登入、取消登入封裝成乙個庫,這個庫含有乙個函式login,這個函式login接收兩個引數「使用者名稱、密碼」,對輸入不同的使用者名稱和密碼可以進行不同的測試用例。也可以另外乙個函式cancle。
3、所謂資料驅動思想,眾說紛紜,很多人都覺僅僅依靠用excle表進行不同資料的讀取僅是乙個高階的引數化,其實怎麼理解並不重要,關鍵是其思想能夠好的應用到你的框架中。而我的理解就是變數不變,資料驅動結果,不同的資料導致了不同的結果的產生。而對於資料的匯入,可以通過很多方式,例如:excle表、xml(用在web中)、資料庫(db)、csv檔案、txt等都可以。
4、所謂關鍵字思想,這個思想,我曾經一直思考,它與物件導向的關係,與互動模組化思想的區別。後來個人理解,其實關鍵字驅動就是一種物件導向的思想,例如:qtp、rft中,物件可以為乙個資料或者乙個關鍵字,對物件的抓取,可以將其測試物件封裝為乙個關鍵字(即可以將gui元素封裝成了乙個個關鍵字),這樣可以對其關鍵物件進行各種操作了,不同的物件可以驅動不同的測試流向與結果。
簡單的應用的方式可以用乙個excel表,裡面包括「物件型別」「物件名稱」「物件操作名稱」「判斷方式」「預期結果」。這樣的話,可以通過匯入不同的物件型別和名稱、不同的物件操作來構建成了乙個測試用例表了。
以上只是對這些思想的個人理解,做好自動化測試,不是說你掌握了乙個框架,而是要掌握其自動化的思想,然後根據這些思想,結合你不同的測試環境和流程來構建你自己的自動化測試框架。
自動化測試框架
可設計為五層 一 測試用例層 主要存放用例的指令碼,分為主指令碼和子指令碼。主指令碼用來控制各個子指令碼,實現指令碼間的資料傳遞。子指令碼是實現各個功能點的指令碼,同時也會提取出一些共用的方法,一般放在提取層中。主指令碼中可使用資料驅動來控制指令碼實現各種場景的流程,如silktest的test s...
自動化測試框架 自動化測試呼喚開發
週末參加了testage 測試時代 組織的乙個專家討論會。主要討論測試自動化。說是專家討論會,我參加實在是慚愧,我對測試的理解實在是太淺薄了。只是因為在部落格上發表了一些謬論才收到邀請。想著可以幫助公司去接受一些新的思想,而自己也可以結識一些朋友,便去了。對於測試時代的會議組織,我以為定位和思路還是...
自動化測試框架指南
這 是我以前寫的一篇文章,用於整理自己對自動化測試的理解。當時寫這個文章的目的,是因為剛剛掌握qtp,又使用自動化測試參與公司乙個大專案的測試,結果 發現原來掌握qtp距離自動化測試還有很遙遠的路要走,原來一直以為掌握了qtp的指令碼編寫 可以寫出所有的測試方法指令碼則自動化測試就可以大功告成了。但...