自動化框架到底是什麼?

Sharonyao發表於2020-09-30

如今,隨著敏捷和 DevOps 軟體方法論的發展,以及企業尋求更快釋出和高質量產品的需求,它需要比手動測試方法更快,更高效的軟體測試方法。微型,小型和中型企業(SME)使其測試過程自動化變得越來越必要,但是最關鍵的方面是選擇正確的測試自動化框架。網上各式各樣的介紹是否讓你眼花繚亂?接下來,讓我從實踐出發,介紹一下什麼是自動化測試框架。

image

什麼是框架?

讓我們從一個例子出發,而不是直接提供一個框架的粗俗定義。你應該參加過研討會/講座/會議,參與者會被要求遵守一些指導原則:

  • 參加者應在講座開始前 5 分鐘就座
  • 提前閱讀摘要,以便您對簡報有一個大概的瞭解
  • 手機應設為靜音
  • 如果您需要在講座進行中離開,請使用揚聲器對面的出口
  • 會議結束時可以提出問題

你認為可以在遵守這些準則的情況下參加 研討會嗎?

答案是肯定的!當然,你可以在沒有上述指導的情況下進行研討會/講座/會議/演示,我們中的某些人也不會遵循。但是,如果遵循這些指導方針,將會產生有益的結果,例如減少演講過程中的聽眾分心,增加參與者對主題的保留和理解。

基於上述內容,可以將框架定義為一組準則,遵循這些準則可以產生有益的結果。

 

什麼是測試自動化框架?

我們知道,軟體測試分為手工測試和自動化測試,一般只有自動化測試才有框架的概念。我們要進行自動化測試,就會用到很多工具,怎麼去管理好這些程式碼,工具和資料呢?用框架把它們放在一起就是一種很好的方式。

測試自動化框架是為自動化測試指令碼提供執行環境而搭建的支架,它是一套準則,例如編碼標準,測試資料處理,物件庫處理等,在自動化指令碼編寫過程中遵循這些準則可產生有益的結果,例如增加程式碼重用,更高的可移植性,降低的指令碼維護成本等。準則而非規則;它們不是強制性的,你仍然可以在不遵循準則的情況下編寫指令碼。但是你會錯過擁有框架的優勢。

使用測試框架的好處主要有:

  1. 提高測試效率
  2. 降低維護成本
  3. 最少的人工干預
  4. 最大測試範圍
  5. 程式碼的可重用性

 

公司的需求是什麼?

我們學習自動化測試的最終目標都是為了提升公司產品的價值。那麼,讓我們再深入一些,從公司的角度思考為什麼需要自動化測試框架。

企業通常面臨著平衡成本和管理資源的難題,選擇能夠覆蓋其所有業務場景以交付高質量應用程式的自動化框架。顯然,通過選擇和實施最佳的測試自動化框架,企業可以顯著提高測試執行速度和測試過程的準確性,以提供更高的投資回報率(ROI)和高質量的產品。因此,我們應該選擇有效的自動化框架型別,以確保對其應用程式進行有效的測試。

 

常見的自動化測試框架

我接下來會站在實踐角度,來說說常見的自動化測試框架。現在用的最多的就是,Web UI 自動化和介面自動化兩塊,下面是我整理的內容:

1、介面自動化框架:

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

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

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

④ jmeter+Maven/Ant+Jenkins+MySQL

2、UI自動化測試框架

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

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

③ python+robot framework+unittest/pytest+Git+Jenkins+MySQL

需要大家注意的是,常見的 Robot Framework,Selenium 也可以單獨稱為框架,也可以稱為工具。這些都是概念和術語,大家不必特別糾結。

通過上面的一些常見框架,你發現了什麼?

它們都擁有共同特性:程式語言+單元測試框架+掃描編譯工具+持續整合工具+資料庫+專案管理工具,可以根據需求進行相應調整。之後我也會展開介紹,比如常見框架的實踐、單元測試框架是什麼、測試工具有哪些等等,現在簡單瞭解一下就好。

 

驅動模式

最常見的是按照驅動模式給框架進行分類,主要有以下幾點

1.資料驅動

在自動化或測試任何應用程式時,有時您可能會使用不同的輸入資料集多次測試相同的功能。在這種情況下,我們無法在測試指令碼本身中嵌入測試資料。資料驅動測試框架可幫助使用者將測試指令碼邏輯和測試資料彼此隔離。測試資料儲存在外部儲存資源中,例如xml檔案,excel檔案,文字檔案,CSV檔案等。

好處

  • 測試用例可以用多組資料執行
  • 更改指令碼不會影響測試資料
  • 通過更快地執行測試,您將節省大量時間

缺點

  • 建立資料驅動的框架需要花費大量時間
  • 您將需要高超的技術專長,精通各種程式語言來編寫這些指令碼

2.關鍵字驅動

在某些方面,此框架是資料驅動測試框架的擴充套件。它不僅將測試資料與指令碼分離,而且還將屬於測試指令碼的特定程式碼集儲存到外部資料檔案中。在這裡,我們使用表格格式為要執行的每種方法定義關鍵字或操作詞。設定完表格後,您要做的就是根據關鍵字編寫將觸發必要動作的程式碼。

好處

  • 需要最少的指令碼知識
  • 提供高度的程式碼可重用性
  • 可以獨立於被測軟體編寫測試指令碼

缺點

  • 建立框架的初期投資很高
  • 需要高階技術專家

3.混合型驅動框架

顧名思義,混合測試框架是上述多個框架的組合。這種設定的最好之處在於,它利用了各種關聯框架的優勢。關於此框架的最好的事情是可以根據您的特定需求和要求對其進行自定義。您可以選擇適合每個需求的每個框架的功能。

4.行為驅動(lettuce)測試框架

TDD中的BDD內容即測試驅動開發,它允許使用者以最少的軟體程式碼干預就可以處理多個測試資料,從而有助於提高程式碼的可重用性,這是軟體開發/測試自動化中的一種省時機制。

 

如何選擇測試自動化框架

由於不同的企業有不同的需求,因此很難在測試自動化框架中確定您想要的所有內容。但是,大多陣列織會在測試自動化框架中尋找一些關鍵標準:

1.易於指令碼開發:測試框架必須支援敏捷過程和快速迭代。

2.跨團隊相容性:由於軟體測試不限於單個部門,因此測試框架必須在各個角色之間相容,並要求開發人員和質量檢查人員提供輸入。

3.支援多種語言:框架應包括對不同應用程式平臺的語言支援。

4.對最新平臺功能的支援:開源測試框架應定期更新,並應與最新的作業系統功能相容,以避免圍繞測試的框架空白。

 

最後

回顧一下,今天整體介紹了什麼是測試框架,有哪些常見的測試框架,之後我會單獨就最實用,最熱門的介面自動化和 Web UI 自動化進行進一步的介紹。

不過,我們要知道,自動化測試框架只是輔助工具,自動化測試的核心在自動化測試用例,如何設計和實現高效和有效的自動用例才是自動化成功的關鍵,當然,這需要你對業務和需求有非常好的理解。我們下次見!

 

相關文章