JMeter是基于Java開發的工具,需先安裝JDK 8或更高版本。在CentOS上可通過以下命令安裝OpenJDK 8:
sudo yum install java-1.8.0-openjdk-devel -y
安裝完成后驗證Java版本:
java -version
需確保輸出顯示Java版本為1.8及以上。
從Apache JMeter官網下載最新穩定版(如apache-jmeter-5.5.tgz),解壓至指定目錄(如/opt/jmeter):
wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.5.tgz
tar -zxvf apache-jmeter-5.5.tgz -C /opt/jmeter
編輯/etc/profile文件,添加JMeter路徑至PATH環境變量:
echo 'export JMETER_HOME=/opt/jmeter/apache-jmeter-5.5' >> /etc/profile
echo 'export PATH=$JMETER_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
驗證JMeter命令是否可用:
jmeter -v
應輸出JMeter版本信息。
線程組是JMeter測試計劃的核心,用于設置并發用戶數、啟動時間和循環次數。
關鍵參數說明:
Add→Threads (Users)→Thread Group,填寫上述參數。HTTP請求是性能測試的核心組件,用于模擬用戶對接口的調用。
關鍵參數說明:
jsonplaceholder.typicode.com);/posts);{"name":"test"})。Add→Sampler→HTTP Request,填寫上述參數。監聽器用于收集和展示測試結果,非GUI模式下建議禁用高開銷監聽器(如View Results Tree),僅使用低開銷監聽器(如Aggregate Report、Summary Report)。
常用監聽器:
Add→Listener→選擇所需監聽器。JMeter運行在JVM上,需調整堆內存大小以避免內存溢出。編輯JMeter啟動腳本jmeter(位于/opt/jmeter/apache-jmeter-5.5/bin):
vim jmeter
找到HEAP參數,修改為(根據服務器內存調整,建議不超過物理內存的2/3):
HEAP="-Xms2g -Xmx4g -XX:MaxMetaspaceSize=512m"
保存后重啟JMeter使配置生效。
HttpClient4(默認),提供更好的連接池管理;修改jmeter.properties文件(位于/opt/jmeter/apache-jmeter-5.5/bin),優化結果保存設置:
vim jmeter.properties
關鍵配置:
# 結果文件格式(CSV格式更節省空間,適合大數據量)
jmeter.save.saveservice.output_format=csv
# 不保存響應數據(減少磁盤I/O,如需調試可開啟)
jmeter.save.saveservice.response_data=false
# 控制臺摘要輸出頻率(秒,默認30,調整為10更頻繁查看進度)
summariser.interval=10
保存后生效。
當單臺機器無法滿足并發需求時,可使用分布式測試(多臺機器協同執行測試)。
配置步驟:
jmeter-server:jmeter-server -Djava.rmi.server.hostname=<工作節點IP>
(<工作節點IP>為工作節點的實際IP地址);jmeter.properties文件,添加工作節點IP:remote_hosts=<工作節點IP1>:1099,<工作節點IP2>:1099
jmeter -n -t /path/to/test_plan.jmx -l /path/to/results.jtl -r
(-r表示啟動所有遠程節點)。若測試過程中強制kill進程,可能導致.jtl文件不完整,生成HTML報告時報錯。解決方法:
用vim打開.jtl文件,刪除最后一行不完整的信息,再執行報告生成命令:
jmeter -g /path/to/results.jtl -e -o /path/to/report
若測試過程中出現OutOfMemoryError,需調整JVM堆內存(參考“JVM內存調優”部分),或減少并發線程數。