春節假期響應號召原地過年,抽空看了看一些優秀的工具,選擇了一兩個進行了更深入的使用,其中一個很重要的就是draw.io畫圖工具,之前用的是網頁版的,現在用的Mac desktop版本。順便說一句,現在這個工具的網頁版有了新名字,叫diagrams.net,但是桌面版用的還是老名字,目前好像沒有中文名,團隊起名字就是域名,也挺有意思。
在看了一些資料後,發現自己雖然對FunTester測試框架的功能基本滿意了,但是對於框架的結構還是停留在比較籠統的層面,只能說出來一些比較大概的輪廓,比較分成工具類、HTTP協議、其他協議支持以及性能測試框架的理解上。如果想要跟其他人講清楚這個框架,語言組織能力還是有帶提高的,在學習了一些系統思考的技巧以後,打算重新整理FunTester測試框架的內容,畫出架構圖。
第一次在這種嘗試,難免會有錯誤與不足之處,希望各位有心的看官,能給點意見,主要是哪裏畫的不夠清楚,結構不夠有條理,或者符號化不明所以的都可以。我會持續維護更新這個架構圖。
-
高清圖:http://pic.automancloud.com/structure.html
花這個圖大概用了兩天的時間,其中也有一些不斷修改的過程,畫圖幫助我理清楚了框架的結構,糾正了我之前一些錯誤的想法和思路。
-
框架分爲兩個層面: 功能和 性能。 -
功能以 HTTP接口測試爲主,拓展的有 Socket、 dubbo、 Redis和 MySQL以及 MongoDB,這幾種都是平級,我之前覺得 HTTP要成爲單獨的一塊拿出來的講,因爲這裏我做了很多封裝和優化,但是最近了解越多,越覺得自己渺小,每一種接口協議都是一塊非常大的內容,以後的工作會遇到更多更復雜的其他協議的接口測試,當然也有我未列出的其他協議,等我遇到了,會及時更新的。 -
功能有大量的基礎方法封裝,主要以各種工具類體現。 -
功能區中單獨列出來幾個功能模塊的封裝: XML文件解析、 moco API、 JsonPath和 message,之所以單獨列出來是考慮到封裝的功能比較複雜,對於接下來的測試中遇到的需求,有着解決方案的作用,故而單獨列出來。之前的文章都有詳細說明這些功能是解決什麼問題的,有興趣可以翻看。 -
性能分成三部分 多線程模型、 執行類和 輔助功能類,結構簡單,其中 多線程模型和 輔助類中的 標記類都是一些 接口和 虛擬類,在業務實踐中有針對不同需求的簡單實現類,而在實際工作中大多數測試場景都需要確定 測試模型和 測試模式後,手動完成多線程類的編寫,而不是直接使用 業務實踐中的實現。 -
關於性能測試框架如何使用工作,有興趣的可以翻看以前的文章,這裏就說一下思路,根據不同的需求選擇實現不同的 虛擬類,然後將在 doing()
方法中編寫單次運行的業務的接口請求(包括不限於 HTTP、 dubbo等)。完成性能測試框架會執行相應的測試用例,自動收集相關數據,然後統計運算,最近輸出測試報告(圖形)以及測試結果數據。
FunTester,騰訊雲社區欽定年度作者,非著名測試開發er,歡迎關注。
本文分享自微信公衆號 - FunTester(NuclearTester)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。