1. 程式人生 > 程式設計 >Jmeter命令列執行指令碼如何設定動態引數

Jmeter命令列執行指令碼如何設定動態引數

  最近看到在Linux上折騰jmeter的人越來越多,不過即使在windows上,jmeter的指令碼我還是建議用命令列來執行(降低GUI模式帶來的效能損耗,不過拿jmeter來做介面測試的無所謂)。做效能測試的時候,有時候可能需要不停的去設定“執行緒組”那個介面的引數(例如執行緒數、迴圈次數、持續時間等),而每次修改-->儲存-->cmd中執行總感覺麻煩,那就找一種方法可以在命令列中直接指定引數的值。

  檢視相關資料實操,可以發現JMeter的測試計劃在執行Sampler之前會先載入執行屬性(jmeter.properties,system.properties等)檔案,而且JMeter還提供了方法可以動態修改屬性,在命令列中使用【-J】 來指定JMeter Properties,腳本里面使用__P() 函式來獲取命令中指定的屬性值,那麼方法就出來了。

Jmeter命令列執行指令碼如何設定動態引數

配置說明:

1、併發數設定為${__P(concurrent_number,1)},迴圈次數取消勾選Forever,設定為${__P(cycles,1)},其中後面的1是預設值,作用是執行一次來除錯指令碼,這是__P函式的功能(雖然我一直都是用GUI模式來除錯指令碼的)

2、執行時長設定為${__P(duration,60)},預設1分鐘(60s),如果同時設定了迴圈次數和執行時長,那麼滿足其中一個條件指令碼就會停止。

那麼先試試吧,預設執行指令碼,命令列如下:

jmeter -n -t \tmp\cnblgo.jmx(指令碼的絕對路徑)

Jmeter命令列執行指令碼如何設定動態引數

從上圖可以看出,指令碼執行了一次,持續了0.7s,是OK的。

檢視Jmeter的原始碼,可知執行次數=-1時即表示Forever。以50併發執行120s的命令列如下:(為了直觀,我直接生成測試報告用web介面的形式看,否則-l後面的可以不寫)

jmeter -n -t C:\Users\zhoulinjie\Desktop\cnblgo.jmx -Jconcurrent_number=50 -Jduration=120 -Jcycles=-1 -l report.jtl -e -o C:\Users\zhoulinjie\Desktop\report

開啟生成的測試報告檔案,index.html,如下:

Jmeter命令列執行指令碼如何設定動態引數

  還有其他的組合就不截圖了,需要什麼引數,直接用-J+${}+__P()即可。同理,執行緒組介面中的Ramp-Up Period(in seconds)也是可以通過這種方式設定的。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。