當前位置: 妍妍網 > 碼農

測試界的黑馬!推薦一款分布式服務、微服務API、介面、功能和效能一體的自動化測試平台

2024-05-16碼農

一、計畫介紹

本計畫是一款針對分布式服務,微服務API做功能和效能一體化的自動化測試平台,一站式提供計畫管理,微服務,API介面,用例,環境管理,測試管理,前置條件,測試集合,變量管理,測試計劃,Mock,測試報告等。

在計畫開發,叠代交付過程中開發人員,測試人員需要針對系統微服務API做偵錯,回歸測試,效能測試。自動化測試,一個好的平台本質上需要解決API測試的5大基本問題:

1.支持不同的計畫,角色,技術人員多人協作
2.支持定義多個不同的測試環境
3.支持定義各種被測系統,API,功能,效能用例
4.支持功能,效能,回歸,自動化測試,對比
5.功能/效能明細報告,統計報告,通知

二、技術架構

2.1 技術架構

首先系統的架構設計是基於業務的需求出發,脫離需求談架構都是耍流氓,那針對API的測試業務需求是什麽呢?

看下現有的API,服務的測試現狀:

1.使用測試工具Postman,Jmeter,完成API的功能介面測試,或者使用Testng,Junit,等其他類別庫,再配合讀取數據,展示結果等元件搭建框架
2.針對API,服務的效能測試,使用Jmeter,Loadrunner等工具完成多次效能測試驗證
上述這些傳統的方式都可以完成各自的需要,但是問題是API,用例數據分散管理,功能和效能的執行使用不同的工具,站在全域的角度我們可以統一到一個平台上來完成這些工作

1.技術人員可以有統一的地方管理測試伺服器,環境,API
2.然後針對API設計測試用例以及對用例數據統一維護管理
3.不同的人員可以選擇不同的用例集合在不同的環境執行
4.API的測試用例在同一平台既支持功能,又支持效能的測試需求
5.用例的執行效率可以透過機器資源並列執行提升和橫向擴充套件
6.計劃,用例的執行前後支持介面,資料庫,指令碼等條件的執行
7.API的效能測試我們需要看到歷史多次最佳化後的數據結果對比

基於以上這些需求,架構設計如下:


1.後台App,管理系統前端頁面的展示--Vue,打包後部署在nginx中提供存取

2.測試中心服務-TestCenterService,管理後台頁面數據的介面支持,也支持從CI(Jenkins完成打包部署後)觸發測試計劃的執行

3.排程服務-DispathService,測試中心服務送出測試計劃,排程服務將測試計劃中的用例,根據規則分配給多個不同的Slaver,比如平均分配到多個測試執行機,或者指定測試執行機分配,然後定時將分配好的用例推播給不同的slaver測試執行機執行,在推播前會呼叫ConditionService檢查是否有條件需要執行

4.條件服務-ConditionService,專門用來處理計劃或者用例執行測試前後各種不同型別的條件處理,例如執行測試前需要做資料庫準備,呼叫某些介面獲取中間變量,緩存處理,返回某些數據,執行測試後處理某些操作也是同理

5.測試執行機--SlaverService,作為執行用例的實體,支持自訂功能,效能型別,支持橫向擴充套件,啟動後會註冊到系統中,SlaverService會根據獲取的用例去呼叫Jmeter執行功能或者效能測試,在Jmeter內部會呼叫api-jmeter-autotest的java工程,處理功能和效能的執行,以及結果的收集

2.2 開發語言與元件

前端開發: Vue+ElementUI

後端開發: SpringBoot,Redis,Mysql

測試引擎 :JMeter

三、 執行測試的環境如何定義?

一般個人,公司在使用分布式,微服務架構,從開發到釋出上線可能會經過多套環境測試驗證,比如開發環境,測試環境,準生產環境,生產環境,其中測試環境又可能分為多套功能測試環境和效能測試環境,多套環境分開管理,可以有序而不相互幹擾進行測試工作 每套環境由開發的分布式服務,微服務,即提供api服務能力的實體,中介軟體(資料庫,nosql,web伺服器等等)這些元素組成 對於測試來說以上的元素我們需要部署到指定的伺服器或者容器中整體來作為一套環境做測試工作。

四、 針對什麽來做測試?

針對采用分布式服務,微服務架構開發的服務實體,我們可以定義此服務的存取協定,埠。這些服務包含了若幹個API介面,對外提供了不同的功能,每個API會有對應的參數,我們可以定義這些API介面,參數來進行自動化測試。

五、 設計測試用例

設計API介面用例基礎要素:用例數據,用例的斷言,快捷偵錯等基礎,支持復制,批次復制,後續支持自動生成基礎用例 從個人或者公司的角度看,用例的數量和型別來決定需要做怎麽樣的執行,如果用例數量龐大,並且需要快速得到結果,本質上我們需要拆分用例由多機並列執行滿足需求,也就是多點執行,如果需要效能的測試,執行效能的機器我們可以是低效能的多台機器發起或者是高效能的少量機器發起,所以說怎麽執行是根據需要來客製執行用例的型別和機器數量。

六、 執行用例

根據測試業務需要,定義成多個測試集合來滿足不同的測試需要,功能測試,效能測試,回歸測試,CI對接自動化測試 支持立即執行,定時執行,某天執行等多種方式

七、 獲得什麽樣的反饋報告?

對於用例執行完,我們希望看到什麽反饋,對於開發,測試,或者其他技術人員,我們希望看到執行的統計資訊 以及用例詳細資訊:結果狀態,執行時間,請求數據,API的具體響應,我的期望,斷言的詳細資訊,以及用例執行時的資訊 對應效能來說,我們還希望能得到統計的資訊,比如整體效能的時間,tps,響應時間,99%pct等,以及被測系統最佳化前後效能結果的多次對比

七、 產品頁面

八、 演示地址

線上體驗 http://101.43.118.152/

帳號密碼: test test123

原始碼下載地址:

https://gitee.com/season-fan/autometer-api.git

看到最後,如果這個方法對你有用,一定要給我點個「 在看和贊 」。