Metersphere是一站式的開源企業級持續測試平台,涵蓋測試跟蹤、接口測試、性能測試、團隊協作等功能,兼容JMeter 等開源標准,有效助力開發和測試團隊充分利用雲彈性進行高度可擴展的自動化測試,加速高質量軟件的交付。
主要功能
- 測試跟蹤: 遠超 TestLink 的使用體驗
- 接口測試: 類似 Postman 的體驗, 天然支持團隊協作
- 性能測試: 兼容 JMeter,支持 Kubernetes 和雲環境, 輕松支持高並發、分布式的性能測試
- 系統管理: 用戶管理、租戶管理、權限管理、團隊協作
技術棧
- 后端: Spring Boot
- 前端: Vue.js、
- 中間件: MySQL, Kafka
- 基礎設施: Docker, Kubernetes
- 測試引擎: JMeter
組件說明
- Frontend: MeterSphere 的前端工程, 基於 vue.js 進行開發
- Backend: MeterSphere 的后端工程, 基於 Sprint boot 進行開發, 為 MeterSphere 的功能主體
- Chrome plugin: 瀏覽器插件, 錄制 web 訪問請求生成 JMeter 腳本並導入到 MeterSphere 中用於接口測試及性能測試
- Node controller: 為性能測試提供獨立節點類型的測試資源池, 接收來自系統的性能測試任務, 動態的啟動 JMeter 容器完成性能測試
- MySQL: MeterSphere 項目的主要數據均存儲在 MySQL
- Kafka: 接收 JMeter 產生的性能測試結果數據
- Data streaming: 從 Kafka 中獲取性能測試結果數據進行處理后存入 MySQL 數據庫
- Docker engine: 為 Node Controller 提供 JMeter 容器運行環境
各個組件間的關系可參考下圖
部署服務器要求
- 操作系統: CentOS 7.x
- CPU/內存: 4核8G
- 磁盤空間: 50G
- 可訪問互聯網
在線安裝
以 root 用戶執行如下命令一鍵安裝 MeterSphere:
curl -sSL https://github.com/metersphere/metersphere/releases/latest/download/quick_start.sh | sh
在線升級
# 升級至最新版本(v1.3.0+版本)
msctl upgrade
# 查看 MeterSphere 狀態
msctl status
常見問題
Q:是否支持/如何支持分布式的性能測試?
MeterSphere 通過在測試資源池中添加多個測試執行節點的方式來支持分布式的性能測試。在我們向一個測試資源池中添加節點時,除了節點的 IP、端口信息外,還需要根據該節點的機器規格,配置該節點可以支持的最大並發數。當我們在執行性能測試的過程中選擇了某個測試資源池時,MeterSphere 會將本次性能測試定義的並發用戶數,按照所選測試資源池的節點支持的最大並發數進行按比例拆分,在測試開始執行后,每個測試執行節點會將測試結果、測試日志等信息輸送到執行的 Kafka 隊列中,MeterSphere 中的 data-streaming 組件會從 Kafka 中收集這些信息並進行匯總處理。
例如當我們在系統中存在一個如下配置的測試資源池,並選擇該測試資源池執行一個 10000 並發用戶的性能測試時,node1 及 node2 將各分配 4000 個並發用戶,node3 將分配 2000 個並發用戶。
Q:重啟安裝服務器后,如何啟動 MeterSphere 相關組件?
MeterSphere 在安裝過程中沒有配置 docker 及其相關容器的自啟動。當用戶重新啟動部署服務器之后,需要手動啟動 docker 服務及 MeterSphere 相關容器。
service docker start
msctl start
msctl status
Q:如何向測試資源池中添加節點?
首先需要在要添加的節點上部署 MeterSphere 的 node-controller 組件,安裝方式參考本文檔「在線安裝」或「離線安裝」章節內容,在執行安裝腳本前,修改 install.conf 文件中的 MS_MODE 字段的值為 node-controller 后執行安裝腳本。
安裝完成通過查看組件狀態是否正常
msctl status
當組件狀態正常后,使用管理員賬號登錄 MeterSphere,在「系統設置」-「系統」-「測試資源池」頁面添加或編輯已有測試資源池,在彈出的頁面中增加一個節點,IP 地址為要添加的測試執行節點的 IP,端口默認為 8082,最大並發數根據測試執行節點的機器規格進行配置。
節點添加完成點擊確定后系統將對節點狀態進行檢查,若測試資源池為可用狀態則說明該測試資源池及其中的節點可以正常使用。若提示校驗不通過,請登錄測試執行節點通過如下命令查看組件日志。
docker logs ms-node-controller
其他,詳見MeterSphere 文檔。