1. 什么是自動化測試框架


            在了解什么是自動化測試框架之前,先了解一下什么叫框架?框架是整個或部分系統(tǒng)的可重用設(shè)計,表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實例間交互的方法;另一種定義認(rèn)為,框架是可被應(yīng)用開發(fā)者定制的應(yīng)用骨架。前者是從應(yīng)用方面,而后者是從目的方面給出的定

          義。 從框架的定義可以了解,框架可以是被重用的基礎(chǔ)平臺;框架也可以是組織架構(gòu)類的東西。其實后者更為貼切,因為框和架本來就是組織和歸類所用的。

            所以自動化測試框架的定義為:由一個或多個自動化測試基礎(chǔ)模塊、自動化測試管理模塊、自動化測試統(tǒng)計模塊等組成的工具集合。


            按框架的定義來分,自動化測試框架可以分為:基礎(chǔ)功能測試框架、管理執(zhí)行框架;按不同的測試類型來分,可以分為:功能自動化測試框架、性能自動化測試框架;按測試階段來分,可以分為:單元自動化測試框架、接口自動化測試框架、系統(tǒng)自動化測試框

          架;按組成結(jié)構(gòu)來分,可以分為:單一自動化測試框架、綜合自動化測試框架;按部署方式來分,可以分為:單機自動化測試框架、分布式自動化測試框架。


            在百度百科中是這樣定義的:自動化測試框架,即是應(yīng)用于自動化測試所用的框架。按照框架的定義,自動化測試框架要么是提供可重用的基礎(chǔ)自動化測試模塊,如:selenium
          ?[1] <>??、watir等,它們主要提供最基礎(chǔ)的自動化測試功能,比如打開一個程序,模擬鼠

          標(biāo)和鍵盤來點擊或操作被測試對象,最后驗證被測對象的屬性以判斷程序的正確性;要么是可以提供自動化測試執(zhí)行和管理功能的架構(gòu)模塊,如:Phoenix
          Framework,robot?[2] <>??,STAF?[3] <>??等,它們本身不提供基礎(chǔ)的自動化測試支持,只是用于組織、管理和執(zhí)

          行那些獨立的自動化測試用例,測試完成后統(tǒng)計測試結(jié)果,通常這類框架一般都會集成一個基礎(chǔ)自動化測試模塊,如:robot框架就可以集成selenium?[4] <>
          ??框架,Phoenix Framework集成的也是selenium框架。


            簡單來說,自動化測試框架就是由一些標(biāo)準(zhǔn),協(xié)議,規(guī)則組成,提供腳本運行的環(huán)境。自動化測試框架能夠提供很多便利給用戶高效完成一些事情,例如,結(jié)構(gòu)清晰開發(fā)腳本,多種方式、平臺執(zhí)行腳本,良好的報告去跟蹤腳本執(zhí)行結(jié)果。

          框架具有以下一些優(yōu)點:

          1)代碼復(fù)用

          2)最大覆蓋率

          3)很低成本維護(hù)

          4)很少人工干預(yù)

          5)簡單報告輸出

          2. 為什么要進(jìn)行自動化測試?

          ①、黑盒測試回歸效率低

          ②、手動測試的偶然性和不確定性

          ③、回歸的覆蓋率不足

          ④、交付的產(chǎn)品質(zhì)量無法保證,全靠評估

          ⑤、系統(tǒng)越復(fù)雜,問題越多

          ⑥、上線時間長、構(gòu)件失敗率高導(dǎo)致的蝴蝶效應(yīng)(迭代快,加班多)

          3. 自動化測試能解決什么問題?

          ①、提高出現(xiàn)問題后的響應(yīng)速率

          ②、降低回歸成本

          ③、提高回歸覆蓋率

          ④、提高回歸效率

          ⑤、提高回歸的穩(wěn)定性

          4. 自動化測試的不足有哪些?

          ①、無法減少成本投入,而是為了加快測試結(jié)果反饋,提升測試質(zhì)量

          ②、自動化適用于回歸和冒煙,而不是發(fā)現(xiàn)BUG

          ③、錄制回放功能是雞肋,可視化并不是一個很好的做法

          ④、不是所有所有系統(tǒng)所有功能都適合做自動化測試

          5. 常見的測試框架分類

          好多Selenium自動化測試開發(fā)人員是有QTP那邊轉(zhuǎn)過來的,所以,他們在早期設(shè)計的框架大致可分為以下幾類:

          1)基于模塊的測試框架

          2)基于庫(Library)結(jié)構(gòu)測試框架

          3)數(shù)據(jù)驅(qū)動測試框架,和QTP很像

          4)關(guān)鍵字驅(qū)動測試框架,也是QTP過來的

          5)混合測試框,3 4和綜合

          6)行為驅(qū)動開發(fā)測試框架

          ?這里我們不一一介紹這些框架,字面意思可以想象一些這些框架的背景和組件,本文只是對框架有一個基本了解。

          6. 框架基本組件

          我們來思考下框架組成部分:

          1)需要配置文件管理

          2)業(yè)務(wù)邏輯代碼和測試腳本分離

          3)報告和日志文件輸出

          4)自定義的庫的封裝

          5)管理、執(zhí)行腳本方式

          6)第三方插件引入

          7)持續(xù)集成

          解釋:

          ?????
          我們需要一個配置文件去控制一些,環(huán)境信息,開關(guān),配置文件可以是txt/xml/yaml/properties/ini,一般.properties使用較多在JAVA里,本文是Python系列,我可能會選擇ini文件。

          ??????
          業(yè)務(wù)邏輯代碼和測試腳本分離,不像我們剛開始學(xué)習(xí)Selenium那樣,代碼和腳本在一個類文件里演示。我們根本沒有用到代碼重構(gòu),復(fù)用。代碼和用例文件分離后,更加清晰,去多人開發(fā)腳本,方便調(diào)試。

          ??????
          報告和日志文件輸出,你執(zhí)行了多少case,case結(jié)果如何,這都需要報告來展示,一般采用第三方插件來實現(xiàn)這個功能,好多報告格式是html,簡單,明了的風(fēng)格。日志輸出也很重要,如果發(fā)生報錯,腳本執(zhí)行失敗,通過日志快速定位發(fā)生問題位置。

          ?????
          用戶自定義庫,這個很好理解,我們很多功能需要重復(fù)調(diào)用,這樣我們就寫成一個公用方法,放到工具包下,每次方便調(diào)用,例如瀏覽器引擎類和basepage.py的封裝。

          ????? 管理和執(zhí)行腳本的方式,例如Python中單元測試框架unittest使用率非常高。

          ?????
          第三方插件,有時候,我們一些功能,需要借助第三方插件,能夠更好實現(xiàn),例如AutoIT,來實現(xiàn)文件上傳和下載。還有利用第三方報告插件生成基于html格式的測試報告。

          ????? 持續(xù)集成,git,svn,ant,maven,jenkins,我們會把這整合到j(luò)enkins,達(dá)到持續(xù)集成,一鍵執(zhí)行測試腳本。

          7. 自動化框架概要設(shè)計


          根據(jù)以上的框架基本組件特點介紹,宏哥大致用以下圖來描述一下,一個簡單的自動化測試框架,可能包含配置文件、框架的主要代碼、產(chǎn)品業(yè)務(wù)頁面、測試腳本集合、日志和報告和持續(xù)集成等等這些組成部分吧,目前想到的只有這么多,如果后期想到宏哥再進(jìn)一步完善它。



          8. 自動化框架詳細(xì)設(shè)計


          根據(jù)以上的框架概念設(shè)計的特點介紹,宏哥這里詳細(xì)地用以下圖來描述一下,一個簡單而又實用的自動化測試框架,可能包含以下這些組成部分。宏哥目前細(xì)化到這里,后期會將這個框架的代碼放到github上,歡迎有興趣和有能力的大佬給出建議或者完善這個自動化測試框架。

          ? ?

          9. 小結(jié)


            框架的簡單介紹就到這里,有些人把框架想得太復(fù)雜了,框架無非就是一些軟件的集合,達(dá)到特定的目的。這里我們上圖畫出來的框架,就是一個簡單的自動化測試框架,別笑,這確實是一個簡單但又包含必要的組件的自動化測試框架設(shè)計實例,如果你學(xué)會了這個設(shè)計思路和思想,那么,你已經(jīng)達(dá)到了自動化測試第二個階段的水平:能夠簡單設(shè)計自動化測試框架和維護(hù)框架的能力。

          ?

          好了,今天的分享就到這里吧?。?!謝謝各位的耐心閱讀。

          ?

          您的肯定就是我進(jìn)步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得隨手點波?推薦?不要忘記哦?。?!

          別忘了點推薦留下您來過痕跡

          ?


          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務(wù)器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點信息
          問題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                中文字幕中文字幕无码 | 2000avxxx | 久久久久久天堂 | 91久久在线观看 | 欧美精品天堂 |