百科
Apache JMeter是Apache組織開發的基于Java的壓力測試工具。用于對軟體做壓力測試,它最初被設計用于Web應用測試,但後來擴充到其他測試領域。 它可以用于測試靜态和動态資源,例如靜态檔案、Java 小服務程式、CGI 腳本、Java 對象、資料庫、FTP 伺服器, 等等。JMeter 可以用于對伺服器、網絡或對象模拟巨大的負載,來自不同壓力類别下測試它們的強度和分析整體性能。另外,JMeter能夠對應用程式做功能/回歸測試,通過建立帶有斷言的腳本來驗證你的程式傳回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正規表達式建立斷言
我們為什麼使用Jmeter
- 開源免費,基于Java編寫,可內建到其他系統可拓展各個功能插件
- 支援接口測試,壓力測試等多種功能,支援錄制回放,入門簡單
- 相較于自己編寫架構活其他開源工具,有較為完善的UI界面,便于接口調試
- 多平台支援,可在Linux,Windows,Mac上運作
Jmeter安裝配置
登入
http://jmeter.apache.org/download_jmeter.cgi,根據自己平台,下載下傳對應檔案
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuYDMjhzN1cDZmNDMzYWNlBTYlJGMlVjY0IGZlNmZlVWNfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
image.png
将下載下傳Jmeter檔案解壓,打開/bin/jmeter.bat
打開後如圖效果顯示
建立線程組
線程組( Threads (Users))
- 了解:一個虛拟使用者組,線程組内線程數量在運作過程中不會發生改變。
- 注意事項:線程間變量互相獨立。一個測試計劃内可以包含多個線程組。
-
可定義内容:
取樣器錯誤後執行的操作:繼續,啟動下一個線程,停止線程,停止測試,立刻停止
線程屬性:線程數,啟動間隔時間(s)(n s内啟動所有線程),單線程循環次數,線程執行順序,是否使用排程器。
排程器配置:持續時間,啟動延遲,啟動時間,結束時間
本執行個體基本設定如下
為該線程組添加HTTP請求預設值壓測軟體Jmeter使用執行個體(WIN7環境)百科我們為什麼使用JmeterJmeter安裝配置Sampler監聽器(Listener)點選啟動按鈕,開啟測試Jmeter自定義變量Redis的壓測 其中壓測軟體Jmeter使用執行個體(WIN7環境)百科我們為什麼使用JmeterJmeter安裝配置Sampler監聽器(Listener)點選啟動按鈕,開啟測試Jmeter自定義變量Redis的壓測
配置元件(Config Element)
了解:為測試提供資料支援的控件
HTTP請求預設值
把測試計劃中所有的HTTP請求的預設配置放到HTTP請求預設值中。
把重複的内容提取出來,隻需要定義一次就可以了
協定,伺服器或IP位址,端口号
- 出現在測試計劃下面,那麼該配置會影響測試計劃下的所有HTTP請求取樣器
- 出現線上程組中,那麼其影響範圍是線程組。
Sampler
了解:請求,設定不同的request
HTTP請求
了解:就是一次HTTP請求
本執行個體該配置如下
監聽器(Listener)
了解:檢視請求執行結果的控件
聚合報告
參數含義:
Label:每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這裡顯示的就是 Name 屬性的值
Samples:表示你這次測試中一共發出了多少個請求,如果模拟10個使用者,每個使用者疊代10次,那麼這裡顯示100
Average:平均響應時間——預設情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,也可以以Transaction 為機關顯示平均響應時間
Median:中位數,也就是 50% 使用者的響應時間
90% Line:90% 使用者的響應時間
Min:最小響應時間
Max:最大響應時間
Error%:本次測試中出現錯誤的請求的數量/請求的總數
Throughput:吞吐量——預設情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數
KB/Sec:每秒從伺服器端接收到的資料量,相當于LoadRunner中的Throughput/Sec
圖形結果
樣本數目:總共發送到伺服器的請求數。
最新樣本:代表時間的數字,是伺服器響應最後一個請求的時間。
吞吐量:伺服器每分鐘處理的請求數。
平均值:總運作時間除以發送到伺服器的請求數。
中間值:代表時間的數字,有一半的伺服器響應時間低于該值而另一半高于該值。
偏離:伺服器響應時間變化、離散程度測量值的大小,或者,換句話說,就是資料的分布。
注意事項:圖形結果本身會影響Jmeter的性能
點選啟動按鈕,開啟測試
可見TPS還是很低的
Jmeter自定義變量
配置檔案
Redis的壓測
自帶的壓測工具
檢驗服務啟動狀态
執行redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000指令後
可以看出redis的QPS之高
redis-benchmark -h 127.0.0.1 -p 6379 -q -d 100
隻測試set,lpush指令