壓測工具之JMeter講解使用

1 JMeter

1.1 引言

在日常開發(fā)中,當完成一個接口開發(fā)時,需要對接口進行準確性測試,比如PostMan、Swagger等,但在接口上線運行前對其進行性能測試是很有必要的,就是所謂的接口壓力測試。

壓力測試就是考察當前軟硬件環(huán)境下系統(tǒng)所能承受的最大負荷,并借助結果找出系統(tǒng)瓶頸所在。使用壓力測試可以找到更難發(fā)現(xiàn)的問題,比如:內(nèi)存泄漏,并發(fā)和同步
有效的壓力測試系統(tǒng)將應用一下這些關鍵條件:重復并發(fā)、量級、隨機變化。

1.2 壓力測試指標

壓力測試指標:

  • 響應時間(Response Time : RT
    響應時間指用戶從客戶端發(fā)起一個請求開始,到客戶端接收到從服務器端返回的響應結束,整個過程所耗費的時間,下面熟悉一下結果名詞:
    • HPS(Hits Per Second):每秒點擊次數(shù),單位是次/秒
    • TPS(Transaction Per Second):系統(tǒng)每秒處理交易數(shù),單位是筆/秒
    • QPS(Query Per Second):系統(tǒng)每秒處理查詢次數(shù),單位是次/秒
  • 最大響應時間(Max Response Time):指用戶發(fā)出請求或者指令到系統(tǒng)做出反應(響應)的最大時間
  • 最少響應時間(Mininum Response Time):指用戶發(fā)出請求或者指令到系統(tǒng)做出反應(響應)的最少時間
  • 90%響應時間(90% Response Time):是指所有用戶的響應時間進行排序,第90%的響應時間

對于互聯(lián)網(wǎng)業(yè)務,某些業(yè)務有且僅有一個請求連接,那么TPS=QPS=HPS,一般情況下,用TPS來衡量整個業(yè)務流程,用QPS來衡量接口查詢次數(shù),用HPS來表示對服務器單擊請求。無論TPSQPS、HPS,此指標是衡量系統(tǒng)處理能力非常重要的指標,越大越好。

一般情況下:

金融行業(yè):1000TPS~50000TPS,不包括互聯(lián)網(wǎng)化的活動
保險行業(yè):100TPS~1000000TPS,不包括互聯(lián)網(wǎng)化的活動
制造業(yè):10TPS~5000TPS
互聯(lián)網(wǎng)電子商務:10000TPS~10000000TPS
互聯(lián)網(wǎng)中型網(wǎng)站:1000TPS~50000TPS
互聯(lián)網(wǎng)小型網(wǎng)站:500TPS~10000TPS

性能測試主要關注如下三個指標:

  • 吞吐量:每秒鐘系統(tǒng)能夠處理的請求數(shù)、任務數(shù),該值越大越好
  • 響應時間:服務處理一個請求或一個任務的耗時
  • 錯誤率:一批請求中結果出錯的請求所占比例

1.3 JMeter工具使用

1.3.1 JMeter安裝

官網(wǎng): https://jmeter.apache.org/

image.png

需要注意的是:JMeter5.3版本要求Java8以上版本

將下載的壓縮包解壓后,進入到bin目錄中,雙擊執(zhí)行 jmeter.bat,會進入到下面這個頁面。

1.3.2 切換成中文

選項 > 選擇語言 > 中文


image.png

1.3.3 添加線程組

添加線程組,創(chuàng)建模擬多少個并發(fā)用戶


image.png

1.3.4 添加HTTP請求

創(chuàng)建完線程組后,再添加http請求,表示要對哪個接口進行測試


image.png
image.png

1.3.5 添加監(jiān)聽器

為需要壓測的http請求添加監(jiān)聽器,用戶生成測試結果


image.png
image.png

1.3.6 自動壓測

image.png

1.4 JMeter Address Already in use 錯誤解決

這個問題是Windows本身提供的端口訪問機制引發(fā)的,Windows提供給TCP/IP鏈接的端口為1024-5000,并且要四分鐘來循環(huán)回收它們,這樣會導致我們在較短時間內(nèi)跑大量的請求時將端口占滿了。

解決方法:
cmd中,用regedit命令打開注冊表,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Tcpip\Parameters

  • 右擊parameters,添加兩個新的DWORD,名字為MaxUserPortTCPTimedWaitDelay
  • 然后雙擊MaxUserPort,輸入數(shù)值數(shù)據(jù)為65534(十進制),如果是分布式運行的話,控制機器和負載機器都需要這樣操作
  • TCPTimedWaitDelay 30(十進制),表示把端口回收時間從4分鐘,改為30秒

修改配置完畢之后,記得重啟機器才會生效

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容