最近做壓測時使用到Jmeter,為什么用它,之前也做過部分壓測,不是很系統,使用的是Apache Bench,雖然效率高,但是功能比較簡單,不太適合本次壓測場景,
本次壓測場景主要需求點:
- 需要實作Request1的回傳作為Request2的RequestBody或Header
- 需要按比例分配API請求并發,以模擬真實的API壓力場景
對于以上需求,Jmeter均提供了較好的處理方案,后面會一一介紹,
本文首先介紹基本使用方式:
首先,打開Jmeter GUI:

注意:
這里輸出了一行字:
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
即不要使用Jmeter GUI直接進行壓測,只用于測驗創建和除錯,壓測請使用以下命令:
jmeter -n -t testPlanA.jmx -l result.jmx -e -o webreport
另外,壓測的時候注意調整Jmeter的JVM配置,防止壓測程式oom或頻繁gc導致壓測結果不準,
新建執行緒組:

執行緒池屬性如下:

其中有幾個屬性值得說一說:
- 在取樣器錯誤后要執行的動作:
- 繼續:約等于try catch,但什么都不做
- 啟動下一行程回圈:約等于continue
- 停止執行緒:將發生錯誤的執行緒關閉,注意說的是執行緒關閉,例如執行緒1執行出錯了,它會直接關閉,回圈也停止
- 停止測驗:字面意思
- 立即停止測驗:沒用過
- 執行緒數:啟動多少執行緒進行取樣器執行,盡量配置在1000以下
- Ramp-Up時間(秒):在多長時間內啟動以上配置的執行緒數
- 回圈次數:回圈執行多少次,其實這里有疑惑,Ramp-Up和執行緒數及回圈次數之間是什么關系,答:Ramp-Up和回圈次數間沒有直接關系,它只用來定義多長時間啟動配置的執行緒數,例如:配置如上圖,那么啟動后,執行為執行緒1啟動,回圈執行3次,無時間間隔,5秒后執行緒2啟動,回圈執行3次,無時間間隔,即Ramp-Up引數只控制執行緒啟動的時間間隔,不控制回圈次數的間隔,某一個執行緒啟動后,它將沒有任何時間間隔的執行它自己的回圈,
然后新建取樣器,就是Http Request:

創建完成后如下圖:

這里的引數沒什么可說的,注意引數KeepAlive默認為開啟,需要結合你的壓測場景關倍訓打開,
新建結果樹,用于觀察請求結果:

可以觀察請求結果,并根據需要選擇是否只列印錯誤或成功請求,或寫入某個檔案

新建匯總報告,用于觀察或匯出壓測結果:

示例如下圖,不過一般情況下會使用jmeter命令引數指定輸出結果,所以一般用不到:
jmeter -n -t testPlanA.jmx -l result.jmx -e -o webreport

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/550655.html
標籤:其他
上一篇:福建省練習題
下一篇:返回列表
