性能測試平台工具選型對比


工具對比

目前主流的開源性能測試工具主要有如下幾種

比較點

JMETER

nGrinder

Gatling Tsung 結果
開源 免費,完全開源 免費,完全開源 免費,完全開源 免費,完全開源 =

實現語言

JAVA

JAVA

Scala寫的,支持JAVA庫 erlang jmeter=ngrinder>gatling>Tsung

使用方式

C/S或Command

B/S

Command Command =

支持分布式

master/slave

controller/agent

不支持 master/slave jmeter=ngrinder=Tsung>gatling

資源監控

monitor/plugin

monitor方式,有直接可用的源碼

可以對遠程機器用erlang或者SNMP協議監控,並生成相應的圖表 jmeter=ngrinder=Tsung>gatling

社區活躍度

文檔完善,用戶多

有中文社區

有社區支持 有社區支持 jmeter=ngrinder>gatling>Tsung

是否需要編碼

基本不需要

需要,Jython/Groovy

需要,scala 需要 jmeter>Tsung>ngrinder=gatling

腳本的維護

本地

內置SVN

本地 本地 =

腳本錄制

支持http代理錄制,支持第三方錄制

可通過PTS插件進行錄制

支持http代理錄制 支持腳本錄制 =
易用性 成熟的模板,元器件,控制器等直接引入 易用性相對強,對編程要求低 邏輯控制、參數化、檢查點 依賴編程 熟悉scala的人少,邏輯控制、參數化、檢查點 依賴編程  腳本格式和loadrunner是一樣的 jmeter>Tsung>ngrinder>gatling
協議支持 多協議的支持 http協議,其他需要自己擴展開發 http協議,其他需要自己擴展開發 多協議的支持 jmeter>Tsung>ngrinder>gatling

可擴展性

可增加plugin,擴展性強

支持插件

基於一套開源的Gatling DSL APT,功能容易擴展 支持插件 =

安裝

基於jdk,絕對輕量化,拷貝即用

兩個服務controller和agent

基於jdk,絕對輕量化,拷貝即用 需要安裝3個服務和配置 jmeter=gatling>ngrinder>Tsung
壓測平台編碼量 很大 很大 ngrinder>jmeter>gatling=Tsung

 通過從下面各個維度對比可以看出,工具jmeter都具有優勢,但壓測平台的開發編碼量比較大,nGrinder有現成的壓測平台,開發工作量少,但是易用性不如jmeter,腳本需要大量的編碼工作,推廣難道比較大,兩者各有優缺點。

 

平台開發工作量對比

如下為完全平台化需要完成的核心功能點

比較點

JMETER

nGrinder

平台開發主要實現功能 核心功能點如下
  • controller 服務主要用來計算資源,把任務分配給空閑的agent服務
  •  agent 服務注冊心跳、拉取任務,拉取腳本,把執行任務分配給jmeter
  • 平台生成壓測曲線報告和聚合報告
  • 平台需要完成測試腳本、場景、任務、報告的管理
  • 平台需要完成web頁面編輯腳本的功能

核心功能如下

  • 支持用戶的權限功能
  • 支持項目和服務的分組功能

 可以看出JMETER的工作量要遠大於nGrinder

 

易用性對比

在易用性主要是在腳本的編碼工作量方面,通過對比可以看出jmeter無非常明顯的優勢,前提是測試人員具備一定的編碼能力

比較點

JMETER

nGrinder

參數化 通過界面操作完成,簡單

需要手功編寫代碼,編碼工作量少,簡單

關聯 界面操作,各個接口之間的數據可以直接傳遞,簡單 各個方法之間的值可以直接傳遞,簡單
檢查點 界面操作完成,簡單 有檢查點的方法調用,簡單
綜合場景 有豐富的邏輯控制器,簡單 需要大量的編碼工作,復雜

 

壓力機硬件資源消耗對比

壓力機對資源的占用對比,已壓測某服務為例,使用相同的並發用戶數500,對比壓力機資源占用可以看出,ngrinder的cpu占用是jmeter的4倍,內存占用是jmeter5倍

比較點

JMETER

nGrinder

cpu jmeter只需要1個進程,cpu占用為320%

agent 如下10個進程CPU占用達到1200%

 

內存 進程內存占用為0.96G

agent10個進程內存占用5.3G

 

nGrinder 壓測時,監控agent資源利用情況

jmeter

 

 

 

測試指標對比

通過對同一服務,相同並發數和測試時間,對比業務指標TPS和平均響應時間結果如下,jmeter的值要遠大於nGrinder,后續我們對nGrinder的壓測節點進行擴容

最終也只能壓測到18000多TPS

比較點

JMETER

nGrinder

TPS 24002

 14778

響應時間 20ms

33.1ms

 

 

nGrinder測試結果截圖

 

 

 

JMETER 測試結果截圖

 

 

 

綜合分析

 nGrinder在平台二次開發上最簡單,在易用性方面也比較好(前提是要具備一定的編碼能力),但是在調研的過程中發現非常耗壓力機資源,在相同並發下cpu占用是jmeter的4倍,內存占用是jmeter5倍以上,同時在測試kong的時候發現無法壓測到kong的極限值。所以 2個壓測工具可以根據公司或具體情況再選擇吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM