自動化測試是一個復(fù)雜的工作,隨著該領(lǐng)域的快速發(fā)展,雖然其熱度獲得了快速提升,但,但在體系和規(guī)模建設(shè)方面還相對落后,關(guān)鍵是大家對其的定位,很多公司以及很多人都知道做好自動化測試不簡簡單單的靠一個工具,而更需要一個框架,但其總是對“自動化測試框架”缺乏清晰的定位,很容易將其定位成了一個固定的框架。中培偉業(yè)《軟件自動化測試與持續(xù)集成最佳實踐》培訓(xùn)專家陸老師指出,自動化測試框架不是一個模式,而是一系列思想的集合,是將各種自動化測試框架思想集合應(yīng)用去搭建成的一個分層組織。
1、所謂模塊化思想,就是將一個測試用例中的幾個不同的測試點拆分并且將其單個點的測試步驟進(jìn)行了封裝,形成了一個模塊。
例如:一個測試用例要對一個登錄程序進(jìn)行測試,其中包括:用戶名輸入、密碼輸入、以及確定登錄;
那么就可以將用戶名輸入、密碼輸入、確定登錄、取消登錄四個操作分別封裝在四個不同的模塊中。測試時,只需調(diào)用其模塊即可。這樣的話,當(dāng)一個模塊有變化,你只需單獨維護(hù)那個模塊即可,也可以根據(jù)模塊的不同組合成不同的測試用例。
2、所謂測試庫思想,就是模塊化思想的升華,其為應(yīng)用程序的測試創(chuàng)造了庫文件(可以是APIs、DLLs等),這些庫文件為一系列函數(shù)的集合。其與模塊化思想不同的是,其拓展了接口思想,即可以通過接口去傳遞參數(shù),而不是一個封死的模塊,可以說是一個多了一個“門”的交互型模塊。
例如:還是以上那個測試用例,只是將用戶名輸入、密碼輸入、確定登錄、取消登錄封裝成一個庫,這個庫含有一個函數(shù)Login,這個函數(shù)Login接收兩個參數(shù)“用戶名、密碼”,對輸入不同的用戶名和密碼可以進(jìn)行不同的測試用例。也可以另外一個函數(shù)Cancle。
3、所謂數(shù)據(jù)驅(qū)動思想,眾說紛紜,很多人都覺僅僅依靠用EXCLE表進(jìn)行不同數(shù)據(jù)的讀取僅是一個高級的參數(shù)化,其實怎么理解并不重要,關(guān)鍵是其思想能夠好的應(yīng)用到你的框架中。而我的理解就是變量不變,數(shù)據(jù)驅(qū)動結(jié)果,不同的數(shù)據(jù)導(dǎo)致了不同的結(jié)果的產(chǎn)生。而對于數(shù)據(jù)的導(dǎo)入,可以通過很多方式,例如:EXCLE表、XML(用在WEB中)、數(shù)據(jù)庫(DB)、CSV文件、TXT等都可以。
4、所謂關(guān)鍵字思想,這個思想,我曾經(jīng)一直思考,它與面向?qū)ο蟮年P(guān)系,與交互模塊化思想的區(qū)別。后來個人理解,其實關(guān)鍵字驅(qū)動就是一種面向?qū)ο蟮乃枷耄纾篞TP、RFT中,對象可以為一個數(shù)據(jù)或者一個關(guān)鍵字,對對象的抓取,可以將其測試對象封裝為一個關(guān)鍵字(即可以將gui元素封裝成了一個個關(guān)鍵字),這樣可以對其關(guān)鍵對象進(jìn)行各種操作了,不同的對象可以驅(qū)動不同的測試流向與結(jié)果。
簡單的應(yīng)用的方式可以用一個EXCEL表,里面包括“對象類型”“對象名稱”“對象操作名稱”“判斷方式”“預(yù)期結(jié)果”。這樣的話,可以通過導(dǎo)入不同的對象類型和名稱、不同的對象操作來構(gòu)建成了一個測試用例表了。
以上只是對這些思想的個人理解,做好自動化測試,不是說你掌握了一個框架,而是要掌握其自動化的思想,然后根據(jù)這些思想,結(jié)合你不同的測試環(huán)境和流程來構(gòu)建你自己的自動化測試框架。