測試開發(fā):聊一聊自動化測試框架,值得收藏!

自動化測試是指在沒有任何人干擾的情況下,可以自動執(zhí)行測試用例并獲得測試結(jié)果的軟件程序。
自動化測試在很大程度上節(jié)省了人力和時間,也沒有或很少出現(xiàn)測試誤差。一旦自動化測試用例編寫好,也不會出現(xiàn)漏測的情況,而且可以無限次運行測試。自動化測試最大限度地減少了多余的手動測試工作。
框架被認(rèn)為是一套協(xié)議、規(guī)則、標(biāo)準(zhǔn)、和指南的組合,這些協(xié)議、規(guī)則、標(biāo)準(zhǔn)、指南可以作為一個整體納入或遵循,以便利用框架提供的腳手架的好處。說白了它的作用就是可以幫我們更快更好的完成一件事。
自動化測試框架是為自動化測試腳本提供執(zhí)行環(huán)境的腳手架。它可以幫助用戶高效的開發(fā)測試腳本、執(zhí)行測試腳本和展示測試結(jié)果。它是專門為自動化我們的測試工作而創(chuàng)建的系統(tǒng)。
框架應(yīng)該獨立于應(yīng)用程序,也就是說它可以和任何應(yīng)用程序一起使用,而不考慮應(yīng)用程序載測試中的復(fù)雜性。它應(yīng)該是可擴(kuò)展和可維護(hù)的。
自動化測試框架的優(yōu)勢:
代碼的可復(fù)用性
覆蓋范圍大
低成本維護(hù)
極少的人工干預(yù)
方便、可觀的報告
自動化測試框架的組成部分:
基于模塊的測試框架
庫架構(gòu)測試框架
數(shù)據(jù)驅(qū)動測試框架
關(guān)鍵字驅(qū)動測試框架
混合測試框架
行為驅(qū)動測試框架

這種框架將整個“測試中的應(yīng)用程序”分為許多邏輯和獨立的模塊。對每個模塊,創(chuàng)建一個獨立的測試腳本,這些腳本結(jié)合在一起時,會構(gòu)建成更大的測試腳本,代表多個模塊,這些模塊被抽象層隔開,這樣在應(yīng)用程序的各個部分所做的更改不會對該模塊產(chǎn)生影響。

優(yōu)點:
框架引入模塊化,更容易、高效的維護(hù)
模塊化使得框架的可擴(kuò)展性強(qiáng)
修改模塊后,只需要修改相應(yīng)部分的腳本即可
缺點:
在為每個模塊實現(xiàn)測試腳本的同時,測試數(shù)據(jù)已經(jīng)嵌入到測試腳本中,這導(dǎo)致使用不同的測試數(shù)據(jù)進(jìn)行測試時需要在測試腳本中進(jìn)行操作
庫體系結(jié)構(gòu)測試框架是建立在基于模塊的測試框架之上,但比后者有一些額外的優(yōu)勢。它沒有將測試的應(yīng)用程序劃分為測試腳本,而是劃分為函數(shù)。因此,為測試中的應(yīng)用程序創(chuàng)建一個由公共函數(shù)組成的公共庫,當(dāng)需要時,可以從測試腳本中調(diào)用這些庫。
它的基本原理就是確定通用的步驟,并將這些步驟分組到公共庫下的函數(shù)中,在需要的時候在測試腳本中調(diào)用這些函數(shù)。
比如,一個登錄的步驟,可以把它組合成一個函數(shù),并保存到一個庫中,登錄時可以直接從庫中調(diào)用這個函數(shù),而不需要重新再編寫代碼。

優(yōu)點:
跟基于模塊的框架一樣,也具有易于維護(hù)和可擴(kuò)展性
測試腳本中可以使用通用的函數(shù),使得它具有很高的復(fù)用性
缺點:
像基于模塊的框架一樣,測試數(shù)據(jù)嵌入測試腳本中,改變數(shù)據(jù)需要修改腳本
隨著越來越多的庫的引入,可能會使框架越來越復(fù)雜
數(shù)據(jù)驅(qū)動測試框架將測試腳本邏輯和測試數(shù)據(jù)彼此分離??梢园褱y試數(shù)據(jù)單獨存儲起來,存儲數(shù)據(jù)的可以是 xml文件、excel文件、文本文件、csv文件、ODBC數(shù)據(jù)庫等。一般都是以 key-value 格式存儲,方便獲取使用。

優(yōu)點:
大大減少了覆蓋所有測試場景組合所需的腳本總數(shù)
測試數(shù)據(jù)的修改不會影響測試腳本
增加了靈活性和可維護(hù)性
通過更改測試數(shù)據(jù),可以實現(xiàn)單個測試流程測試多個場景
缺點:
過程比較復(fù)雜,可能需要定制測試數(shù)據(jù)源格式和讀取機(jī)制
需要熟練掌握開發(fā)測試腳本的編程語言
只有具有相同執(zhí)行步驟集的相似測試用例才能組合成多組數(shù)據(jù)。不同的執(zhí)行步驟集需要不同的測試用例。
關(guān)鍵字驅(qū)動測試框架是對數(shù)據(jù)驅(qū)動測試框架的擴(kuò)展,從某種意義上說,它不僅將測試數(shù)據(jù)從腳本中分離出來,它還將數(shù)據(jù)測試腳本的特定代碼集保存到外部數(shù)據(jù)文件中。這些代碼集被稱為關(guān)鍵字,每個關(guān)鍵字都一種操作。關(guān)鍵字和測試數(shù)據(jù)都是獨立于該框架。

優(yōu)點:
除了具有數(shù)據(jù)驅(qū)動測試框架的優(yōu)點以外,與數(shù)據(jù)驅(qū)動測試框架不同的是,它不要求用戶具有腳本知識。
單個關(guān)鍵字可用于多個測試腳本
缺點:
需要懂得關(guān)鍵字的創(chuàng)建機(jī)制,從而可以自己開發(fā)關(guān)鍵字
隨著越來越多的關(guān)鍵字引入,可能會使框架逐漸變得復(fù)雜
測試用例變得更長且復(fù)雜,從而影響測試用例的可維護(hù)性
混合測試框架就是上述(模塊化,數(shù)據(jù)驅(qū)動和關(guān)鍵字驅(qū)動)多中類型框架的組合。就是利用各種類型框架的優(yōu)點,組合起來的混合型測試框架。
在這種框架中,通過將測試用例結(jié)合到模塊化測試框架中,從模塊化腳本中開發(fā)測試用例。每個測試用例都使用一個驅(qū)動程序腳本,該腳本使用數(shù)據(jù)驅(qū)動框架中的數(shù)據(jù)文件和關(guān)鍵字驅(qū)動框架中的操作文件。

優(yōu)點:
可以集各種類型測試框架的優(yōu)點于一身
模塊化且易于維護(hù)
更少的代碼可以處理更多的測試用例
一個測試用例可以用多組數(shù)據(jù)執(zhí)行
缺點:
會比其他類型的測試框架更為復(fù)雜一些,例如閱讀、維護(hù)等
行為驅(qū)動測試框架可以讓開發(fā)人員、測試人員等以易于閱讀和理解的格式實現(xiàn)功能驗證的自動化??赏ㄟ^自然語言來描述測試功能,測試場景,測試步驟,測試結(jié)果等
優(yōu)點:
對開發(fā)人員和測試人員友好,非常易懂
不一定要求用戶熟悉編程語言
![]()
學(xué)習(xí)安排上!

轉(zhuǎn)載自:http://t.hk.uy/8jx
