一、准備工作
1、先在Windows上的Jmeter(GUI模式)上調試好我們的jmx腳本
2、Linux上安裝好jmeter,並把jmx腳本上傳到linux上面
3、解壓jmeter,進入bin目錄下
二、執行
1、執行命令:jmeter -n -t {測試腳本jmx的路徑} -l {測試jtl生成路徑} -e -o {html測試報告路徑}
其中:
-h 幫助
-n 非GUI模式
-t 指定要運行的 JMeter 測試腳本文件
-l 記錄結果的文件 每次運行之前,(要確保之前沒有運行過,即xxx.jtl不存在,不然報錯)
-r Jmter.properties文件中指定的所有遠程服務器
-e 在腳本運行結束后生成html報告
-o 用於存放html報告的目錄(目錄要為空,不然報錯)
2、腳本性能優化:
2.1使用非GUI模式:jmeter -n -t test.jmx -l result.jtl
2.2少使用Listener, 如果使用-l參數,它們都可以被刪除或禁用。
2.3在加載測試期間不要使用“查看結果樹”或“查看結果”表監聽器,只能在腳本階段使用它們來調試腳本。
2.4包含控制器在這里沒有幫助,因為它將文件中的所有測試元素添加到測試計划中。]
2.5不要使用功能模式,使用CSV輸出而不是XML
2.6只保存你需要的數據,盡可能少地使用斷言
2.7如果測試需要大量數據,可以提前准備好測試數據放到數據文件中,以CSV Read方式讀取。
2.8用內網壓測,減少其他帶寬影響壓測結果
2.9如果壓測大流量,盡量用多幾個節點以非GUI模式向服務器施壓
三、測試報告的解析
1、dashboard界面
1)Test and Report informations
Source file:jtl文件名
Start Time :壓測開始時間
End Time :壓測結束時間
Filter for display:過濾器
Lable:sampler采樣器名稱
2)APDEX(Application performance Index)
apdex:應用程序性能指標,范圍在0~1之間,1表示達到所有用戶均滿意
T(Toleration threshold):可接受閥值
F(Frustration threshold):失敗閥值
3)Requests Summary
OK:成功率
KO:失敗率
4)Statistics 統計數據
lable:sampler采樣器名稱
samples:請求總數,並發數*循環次數
KO:失敗次數
Error%:失敗率
Average:平均響應時間
Min:最小響應時間
Max:最大響應時間
90th pct: 90%的用戶響應時間不會超過這個值(關注這個就可以了)
2ms,3ms,4,5,2,6,8,3,9
95th pct: 95%的用戶響應時間不會超過這個值
99th pct: 99%的用戶響應時間不會超過這個值 (存在極端值)
throughtput:Request per Second吞吐量 qps
received:每秒從服務器接收的數據量
send:每秒發送的數據量
2、Charts
1)Over Time(隨着時間的變化)
Response Times Over Time:響應時間變化趨勢
Response Time Percentiles Over Time (successful responses):最大,最小,平均,用戶響應時間分布
Active Threads Over Time:並發用戶數趨勢
Bytes Throughput Over Time:每秒接收和請求字節數變化,藍色表示發送,黃色表示接受
Latencies Over Time:平均響應延時趨勢
Connect Time Over Time :連接耗時趨勢
1)Throughput
Hits Per Second (excluding embedded resources):每秒點擊次數
Codes Per Second (excluding embedded resources):每秒狀態碼數量
Transactions Per Second:即TPS,每秒事務數
Response Time Vs Request:響應時間和請求數對比
Latency Vs Request:延遲時間和請求數對比
1)Response Times
Response Time Percentiles:響應時間百分比
Response Time Overview:響應時間概述
Time Vs Threads:活躍線程數和響應時間
Response Time Distribution:響應時間分布圖
四、分布式運行
1、Master主機上,不管是Windows還是Linux,都需要更改jmeter.properties
(1) remote_hosts=192.168.25.132:8899,192.168.25.133:8899,192.168.25.134:8899
① 更改Slave(肉雞)的地址,多個肉雞之間用逗號分隔
(2) server_port=8899
① 啟動服務的端口號
(3) server.rmi.ssl.disable=true
① 允許https協議,ssl的開啟
2、Slave(肉雞)上的設置,不管是Windows還是Linux,都需要更改jmeter.properties
(1) server_port=8899
① 啟動服務的端口號
(2) server.rmi.ssl.disable=true
① 允許https協議,ssl的開啟
3、GUI上啟動遠程測試
4、Linux上啟動遠程測試:-r 使用遠程分布式壓測
jmeter -n -t {測試腳本jmx的路徑} -r -l {測試jtl生成路徑} -e -o {html測試報告路徑}
5、常見問題:
(1) 內存不夠,更改JVM內存,詳情百度,不可大於運行內存的一半
(2) 關閉防火牆:
① 暫時關閉:service iptables stop
② 永久關閉:chkconfig iptables off
(3) hostname沒有映射當前的ip(可能映射的是localhost或者其他),修改即可