自動化測試框架如果總結(jié)成這樣,人人都能學(xué)好

無論是在自動化測試實踐,還是日常交流中,經(jīng)常聽到一個詞:框架。之前學(xué)習(xí)自動化測試的過程中,一直對“框架”這個詞知其然不知其所以然。

最近看了很多自動化相關(guān)的資料,加上自己的一些實踐,算是對“框架”有了一些理解,這篇文就聊聊自動化框架的一些事吧。

01什么是框架

框架(framework)是一個框子—指其約束性,也是一個架子—指其支撐性。是一個基本概念上的結(jié)構(gòu),用于去解決或者處理復(fù)雜的問題。

在軟件工程中,框架(Framework)是整個或部分系統(tǒng)的可重用設(shè)計,表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實例間交互的方法;

另一種定義認為,框架是可被應(yīng)用開發(fā)者定制的應(yīng)用骨架,前者是從應(yīng)用方面而后者是從目的方面給出的定義。

—— 百度百科

image.png

上面的概念比較抽象,換另一個角度解釋:

框架本身一般不完整到可以解決特定問題;

框架天生就是為擴展而設(shè)計的;

框架里面可以為后續(xù)擴展的組件提供很多輔助性、支撐性的方便易用的工具,也就是說框架是配套了一些幫助解決某類問題的庫(libraries)或工具(tools)。

約束性:針對解決特定問題的軟件框架會首先定義問題的邊界,進而將相關(guān)的軟件組件約束在這個邊界內(nèi),保持框架在解決問題方面上的內(nèi)聚性。

支撐性:框架本身不解決什么問題,但給了解決問題的相關(guān)組件一個組合底子,這個底子的科學(xué)性和易用性直接影響在此之上進一步開發(fā)的科學(xué)性和方便性。

—— 知乎

image.png

定義:

為解決某些特定問題而約束邊界,支撐整個問題解決方案,配套了一些解決問題的組件而構(gòu)成的工具。

特定問題:什么問題?——自動化測試

約束邊界:為什么約束?——明確測試范圍和目的

解決方案:用什么方案解決問題?——編程語言+工具+其他

構(gòu)成工具的組件:哪些組件?—— 用例、腳本、數(shù)據(jù)、日志、報告、通知

工具:特點是什么?—— 靈活性、可擴展性、高內(nèi)聚低耦合

你如果是對python自動化測試、web自動化、接口自動化、移動端自動化、面試經(jīng)驗交流等等感興趣的測試人,可以 點這自行獲取…

02自動化測試

1、為什么要進行自動化測試?

黑盒測試回歸效率低

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

回歸的覆蓋率不足

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

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

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

2、自動化測試能解決什么問題?

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

降低回歸成本

提高回歸覆蓋率

提高回歸效率

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

3、自動化測試的不足有哪些?

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

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

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

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

03自動化測試框架

構(gòu)成框架的組件,最起碼應(yīng)該具備以下的功能:

image.png

Log:日志記錄和管理功能,針對不同的情況,設(shè)置不同的日志級別,方便定位問題;

Report:測試報告生成和管理以及即時通知,測試結(jié)果快速響應(yīng);

Source:配置文件、靜態(tài)資源的管理,遵循高內(nèi)聚低耦合原則;

Common:公共函數(shù)、方法以及通用操作的管理,遵循高內(nèi)聚低耦合原則;

TestCase:測試用例管理功能,一個功能點對應(yīng)一個或者多個case,盡可能的提高覆蓋率;

TestData:測試數(shù)據(jù)管理功能,數(shù)據(jù)與腳本分離,降低維護成本,提高可移植性;

TestSuite:測試組件管理功能,針對不同場景不同需求,組裝構(gòu)建不同的測試框架,遵循框架的靈活性和擴展性;

Statistics:測試結(jié)果統(tǒng)計管理功能,每次執(zhí)行測試的結(jié)果統(tǒng)計、分析、對比以及反饋,數(shù)據(jù)驅(qū)動,為軟件優(yōu)化和流程改進,提供參考;

Continuous:持續(xù)集成環(huán)境,即CI環(huán)境,包括測試文件提交、掃描編譯、執(zhí)行測試、生成報告及時通知等功能,持續(xù)集成是自動化測試的核心!

04常見的自動化測試框架

1、接口自動化框架:

① java+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine

② python+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

③ python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

④ jmeter+Maven/Ant+Jenkins+MySQL+testlink/redmine

2、UI自動化測試框架

① java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine

② python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

③ python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine

通過上面的一些常見框架,你發(fā)現(xiàn)了什么?

它們都擁有共同特性:編程語言+單元測試框架+掃描編譯工具+持續(xù)集成工具+數(shù)據(jù)庫+項目管理工具。

編程語言:編寫測試腳本、日志記錄和輸出;

單元測試框架:提供測試腳本運行、異常校驗等一些列的配置;

掃描編譯工具:測試文件掃描編譯,一般配合持續(xù)集成工具使用效果更佳;

持續(xù)集成工具:Jenkins,經(jīng)典的持續(xù)集成工具;

數(shù)據(jù)庫:測試數(shù)據(jù)管理;

項目管理工具:測試結(jié)果統(tǒng)計管理;

PS:自動化測試工具太多,上面只是列舉了使用率較高以及我個人還算了解的一些開源工具,具體的框架選型,需要根據(jù)具體項目特點和團隊、個人技術(shù)特點來決定!

算了解的一些開源工具,具體的框架選型,需要根據(jù)具體項目特點和團隊、個人技術(shù)特點來決定!

最后:你如果是對python自動化測試、web自動化、接口自動化、移動端自動化、面試經(jīng)驗交流等等感興趣的測試人,可以 點這自行獲取…

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容