CentOS系統基礎配置
sudo yum install java-1.8.0-openjdk-devel -y
java -version # 驗證安裝(需顯示1.8及以上版本)
wget https://dlcdn.apache.org/jmeter/binaries/apache-jmeter-5.6.3.tgz # 替換為最新版本
tar -xzf apache-jmeter-5.6.3.tgz
sudo mv apache-jmeter-5.6.3 /opt/jmeter # 移動至無中文路徑
~/.bashrc
,添加:export JMETER_HOME=/opt/jmeter
export PATH=$JMETER_HOME/bin:$PATH
source ~/.bashrc # 生效配置
移動設備準備
設置→關于手機→多次點擊版本號
→開啟開發者選項→設置→開發者選項→開啟USB調試
;iOS:設置→隱私與安全性→開啟開發者模式
)。代理工具配置(可選但常用)
配置JMeter代理服務器
/opt/jmeter/bin/jmeter.sh
),右鍵工作臺→添加→非測試元件→HTTP代理服務器
。8888
(可自定義,需與移動設備代理設置一致);線程組→錄制控制器
(用于存儲錄制的請求);啟動
,點擊啟動
按鈕啟動代理。移動設備代理設置
設置→WLAN→長按當前WiFi→修改網絡→顯示高級選項
,將代理改為手動
,輸入CentOS服務器的IP地址(ifconfig
查看)和代理端口(如8888
)。設置→WLAN→選中當前WiFi→配置代理→手動
,輸入服務器IP和端口。安裝代理證書(HTTPS請求必需)
chls.pro/ssl
(Charles)或jmeter-proxy-cert.pem
(JMeter內置證書),下載并安裝證書。設置→安全→加密與憑據→從存儲設備安裝
,選擇下載的證書;設置→通用→描述文件與設備管理→信任證書
。錄制操作
/api/login
、/api/data
)。參數化動態數據
CSV Data Set Config
組件:創建users.csv
文件(包含username,password
字段),在JMeter中添加CSV Data Set Config
,設置Filename
為users.csv
,Variable Names
為username,password
,實現多用戶數據循環讀取。${__Random(1000,9999)}
生成隨機數,${__time()}
生成時間戳。關聯處理
token
、session_id
),通過正則表達式提取器
或JSON提取器
獲取,后續請求通過${token}
引用。后置處理器
中添加JSON提取器
,設置Names of created variables
為token
,JSON Path expression
為$.data.token
,后續請求的Header
中添加X-Token: ${token}
。邏輯控制
僅一次控制器
(Once Only Controller)包裹登錄請求,避免重復登錄;循環控制器
(Loop Controller)包裹核心業務請求(如瀏覽商品),設置循環次數(如${__Random(1,5)}
)。配置線程組
測試計劃→添加→Threads(Users)→線程組
,設置:
100
);10
秒,表示10秒內啟動100個用戶);永遠
(持續負載)或指定次數(如10
次)。添加監聽器
聚合報告
(查看響應時間、TPS、錯誤率)、圖形結果
(直觀展示趨勢);查看結果樹
(調試階段使用,正式測試建議關閉以避免內存溢出)、聚合報告
(保存為.jtl
文件,用于后續分析)。分布式測試(可選)
jmeter.properties
,添加remote_hosts=slave1_ip:1099,slave2_ip:1099
;jmeter-server
(/opt/jmeter/bin/jmeter-server
);jmeter -n -t test.jmx -l result.jtl -r
(-r
表示啟動所有遠程從機)。網絡環境模擬
設置→開發者模式→Network Link Conditioner
、Android開發者選項→網絡模擬
)模擬3G/4G/Wi-Fi;tc
命令模擬網絡延遲(如tc qdisc add dev eth0 root netem delay 100ms
表示添加100ms延遲)。生成HTML報告
jmeter -n -t test.jmx -l result.jtl -e -o /tmp/ResultReport
,生成包含圖表(響應時間、錯誤率、TPS)的HTML報告,通過瀏覽器查看。性能瓶頸定位
top
、vmstat
命令查看CPU、內存、磁盤IO),或應用日志(如Spring Boot的logs/application.log
),分析響應時間過長的原因(如數據庫慢查詢、線程池不足)。調優建議
maxThreads
參數)、優化JVM堆內存(-Xms
、-Xmx
參數);通過以上流程,可在CentOS環境下使用JMeter完成移動端應用的性能、功能測試,覆蓋從腳本錄制到結果分析的全生命周期。需注意移動端的網絡環境、設備多樣性及協議支持(如WebSocket需安裝插件),確保測試結果的準確性。