歡迎光臨
每天分享高質量文章

給研發工程師的代碼質量利器 | SOFAChannel#5 直播整理

,有趣實用的分佈式架構頻道。

本文根據 SOFAChannel#5 直播分享整理,主題:給研發工程師的代碼質量利器 —— 自動化測試框架 SOFAActs。

回顧視頻以及 PPT 查看地址見文末。歡迎加入直播互動釘釘群:23195297,不錯過每場直播。

大家晚上好,我是螞蟻金服自動化測試框架 SOFAActs 開源核心成員青勤,目前從事測試技術相關的研發工作,今晚將由我來給大家分享交流自動化測試框架 SOFAActs 的基本原理和使用。今天的內容主要分為以下四個章節:

  • 專案介紹

  • SOFAActs 接入

  • 功能介紹與使用

  • 升階功能使用

歡迎大家 Star 我,SOFAActs:

https://github.com/sofastack/sofa-acts

1
專案介紹

在分享使用操作前,我將引導大家來熟悉下 SOFAActs 的專案背景、基本原理等。

對於研發質量保障而言,金融系統和金融業務的多樣性、複雜性同樣也會在測試場景、測試驗證和測試流程的複雜程度上得到充分體現。

譬如,對於包含出參、RPC 呼叫、DB 變更和異常等多個測試驗證點的用例而言,在研發和測試人員維護和驗證用例場景的過程中,時常發生業務結果校驗遺漏,對我們及早發現和糾錯問題造成干擾,進而無法嚴格保障產品質量。這些問題對研發質量保障提出了很高的挑戰,相應的自動化、精細化的白盒測試工具需求日益增長,這其中就包括 SOFAActs。

為瞭解決上述痛點、滿足精細化測試需要,在多年測試實踐積累與沉澱下,我們研發了基於模型驅動的 SOFAActs 測試框架,它可以靈活、可擴展的提供一站式用例管理,標準化測試執行和精細化校驗。目前 SOFAActs 測試框架逐漸成熟併在螞蟻金服內部得到廣泛應用。

1.1 專案架構

介紹完背景,我們來看下 SOFAActs 的大體框架,SOFAActs 底層封裝並集成適配 SOFABoot 等運行環境。

在重要的引擎層,SOFAActs 封裝了工具類和資料模型,並將測試樣式的過程進行了標準化,提供通用測試能力和擴展點。對於有自動化測試經驗的同學來講,測試樣式其實並不複雜,這其中有很多工作是可以抽象和固定的,SOFAActs 將這部分內容內聚到引擎層,封裝成標準測試流程等,尤其是模型驅動和精細化校驗等,從而釋放精力,將更多關註點聚焦在待測標的上。

引擎層之上,是 SOFAActs 提供的可視化用例管理功能,可以一站式的維護測試腳本、測試資料和資料模型,借助可視化編輯器可成倍提高用例管理等等操作效率,整體而言 SOFAActs 圍繞模型驅動引擎和可視化編輯器,將測試代碼的編寫工作量極盡降低,標的聚焦在測試物件上。

這裡我們示例看下,SOFAActs 對測試代碼和效率的優化。這裡以 Credit 接口為例,業務處理開始之前會檢查傳參,構造背景關係、隨後發起業務處理,涉及對三張表的讀取或變更,併在資料庫事物結束之後,傳回業務處理結果。

針對這一業務邏輯,這裡我們構造一個 Credit 接口的完整測試用例,在代碼驅動測試時,它需要一下 9 個步驟,手動準備依賴資料、構造請求引數、執行業務邏輯、校驗業務結果以及資料清理等等,人工介入成本居高,尤其當存在多個用例時,測試代碼可復用性低,測試效率是難以得到有效提升。而與之對比,在模型驅動測試下,Credit 接口的 SOFAActs 測試腳本會對固有的測試樣式進行封裝,用例複雜度得到極大精簡,眾多用例資料可以得到高效的可視化管理。

1.2 執行原理

在開始使用 SOFAActs 之前,我們來瞭解一下有關 SOFAActs 執行引擎的運作原理。SOFAActs 框架也提供了非常多的擴展點,如果需要個性化的定義,可以對每一個環節進行擴展。

上文中已提到過 SOFAActs 執行引擎是對測試樣式過程的封裝,Setup 方法是引擎入口,用於加載初始化 SOFAActs 運行時的必需資源,如獲取資料源。

以下是主體測試過程:clear、prepare、execute、check 這 4 個方法依次負責環境清理、依賴準備、執行、結果校驗等。這些內容是代碼驅動測試時需要手寫的測試代碼和內容,每個測試腳本的完成意味著上面的過程會被我們重覆一遍,於是 SOFAActs 將這部分內容進行了封裝,實現了最通用基礎的功能。

右側,我們對高頻資料如方法入參、出參、異常和依賴DB資料進行了抽象,給出 SOFAActs 的模型,這是代碼驅動轉向模型驅動、精細化校驗的基礎。左側的資料總線會貫穿每個用例的執行生命周期,即貫穿中間的主體測試過程,如果大家對框架封裝的基礎功能有自定義需要,可以通過資料總線對 SOFAActs 的物件、方法進行獲取、重寫,以便更靈活的控制框架行為。當然 SOFAActs 對這些內容作了較好的封裝,改寫了大部分的測試需求,無需大家過度關註。

以上就是 SOFAActs 的執行原理,接下來我會給大家詳細介紹 SOFAActs 的接入和使用。

2
SOFAActs 接入

SOFAActs 分為兩部分,其一是可視化編輯器,在 SOFAStack 官網上 [1] 我們可以獲取該編輯器的安裝包,並通過 IDEA 的插件管理進行安裝。其二是 SOFAActs 的基礎 jar,它提供了 SOFAActs 用例運行的環境支持,在 test 模塊 pom 中添加下列依賴即可,有關 test 模塊或者多模塊詳細內容大家可以參考 SOFAActs 的快速開始文件 [1] 。

3
功能介紹和使用

下麵,我們進入 SOFAActs 的功能介紹和使用章節,這部分我將分為三小節展開:一站式構建、SOFAActs 核心的模型驅動以及 SOFAActs 提供的精準校驗。

3.1 一站式構建

一站式構建中,SOFAActs 通過可視化編輯器為我們提供了便捷操作,以幫助一鍵配置初始化、構建測試腳本與模型,可視化管理用例資料等等。借助可視化編輯器,在整個過程中我們可以替換大部分手工編寫代碼的工作,進行一站式操作。

一鍵初始化

這裡我們示例看下,如何操作一鍵初始化以及一鍵初始化做哪些內容。首先一鍵初始化框架只需要 3 個滑鼠點擊步驟。在 Package 視圖下選中測試模塊並右鍵選擇 SOFAActs 功能,一鍵初始化,輸入該應用的應用名稱和工程編碼格式。在一鍵初始化完成後,SOFAActs 將會在 test 模塊寫入 SOFAActs 配置檔案,DB 連接配置檔案,測試套件配置檔案以及創建模型儲存目錄等。

赞(0)

分享創造快樂