Apache JMeter
壓力測試工具
軟體分類 網路與資安 / 網路工具
軟體標籤
bag
開發廠商 Apache Software Foundation
產品說明
Apache JMeter 是一款開源的純 Java 應用程式,專門設計用於對 Web 應用程式進行負載測試(Load Testing)與效能測量。雖然它最初是為了測試 Web 應用而設計,但現在已擴展到其他測試功能,如資料庫(JDBC)、FTP、LDAP、Web Services (SOAP/REST) 與 TCP 連線。
JMeter 能夠模擬伺服器、網路或物件上的重負載,以測試其強度或分析不同負載類型下的整體效能。它是目前業界進行自動化壓力測試的標準工具之一,特別適合用於驗證應用程式在高併發情況下的穩定性。
核心特色:
- 多協定支援:除 HTTP/HTTPS 外,還支援 REST, SOAP, JDBC (資料庫), FTP, LDAP, Mail (SMTP/POP3) 等協定。
- 強大報告功能:內建多種視覺化監聽器 (Listener),可生成圖表、表格與樹狀結果,便於分析回應時間與吞吐量。
- 分散式測試:支援 Master-Slave 架構,可控制多台遠端機器同時產生流量,模擬大規模使用者情境。
- 高度可擴充:支援 BeanShell 與 JSR223 (Groovy) 腳本,並擁有龐大的第三方外掛生態系 (Plugins Manager)。
常用指令
在進行正式的壓力測試時,建議使用非圖形介面模式 (CLI / Non-GUI mode) 以節省系統資源並獲得更準確的測試結果。
啟動與基礎操作
# 啟動 JMeter 圖形介面 (用於建立測試計畫)
jmeter
# 以非 GUI 模式執行測試 (推薦用於正式壓測)
jmeter -n -t test_plan.jmx -l results.jtl
# 執行測試並在結束後自動生成 HTML 報告
jmeter -n -t test_plan.jmx -l results.jtl -e -o ./report_folder
| 參數 | 功能說明 | 範例 |
|---|---|---|
| -n | 非 GUI 模式 (Non-GUI) | jmeter -n ... |
| -t | 指定測試計畫檔 (.jmx) | jmeter -t my_test.jmx |
| -l | 指定結果日誌檔 (.jtl) | jmeter -l output.jtl |
| -e | 測試結束後生成報告 | 需搭配 -o 使用 |
| -o | 指定報告輸出資料夾 | jmeter -o ./html_report |
| -r | 啟動遠端伺服器 (分散式) | jmeter -n -t test.jmx -r |
| -H | 設定 Proxy 主機 | jmeter -H 127.0.0.1 -P 8888 |
進階技巧
HTML 儀表板報告:使用
-g參數可將已存在的 .jtl 檔轉換為美觀的 HTML 報表 (jmeter -g result.jtl -o ./report)。調整 Heap Size:修改啟動腳本中的
HEAP="-Xms1g -Xmx1g"可避免在測試大型計畫時發生 OutOfMemoryError。JSR223 PreProcessor:建議使用 Groovy 語言取代 BeanShell 撰寫前置處理腳本,效能會顯著提升。
操作介面


