從04月換公司開始,就沒靜下來心來學習,其中發生了比較多的事情吧,不過無論如何,沒堅持學習仍是由於懶。本週交接完,下週去入職新公司,該靜下心來學點什麼了。html
-----------------------------------------------------------分割線------------------------------------------------------------- web
最近看到在Linux上折騰jmeter的人愈來愈多,不過即便在windows上,jmeter的腳本我仍是建議用命令行來執行(下降GUI模式帶來的性能損耗,不過拿jmeter來作接口測試的無所謂)。作性能測試的時候,有時候可能須要不停的去設置「線程組」那個界面的參數(例如線程數、循環次數、持續時間等),而每次修改-->保存-->cmd中運行總感受麻煩,那就找一種方法能夠在命令行中直接指定參數的值。windows
查看相關資料實操,能夠發現JMeter的測試計劃在運行Sampler以前會先加載運行屬性(jmeter.properties,system.properties等)文件,並且JMeter還提供了方法能夠動態修改屬性,在命令行中使用【-J】 來指定JMeter Properties,腳本里面使用__P() 函數來獲取命令中指定的屬性值,那麼方法就出來了。併發
配置說明:函數
一、併發數設置爲${__P(concurrent_number,1)},循環次數取消勾選Forever,設置爲${__P(cycles,1)},其中後面的1是默認值,做用是執行一次來調試腳本,這是__P函數的功能(雖然我一直都是用GUI模式來調試腳本的)性能
二、執行時長設置爲${__P(duration,60)},默認1分鐘(60s),若是同時設置了循環次數和執行時長,那麼知足其中一個條件腳本就會中止。學習
那麼先試試吧,默認執行腳本,命令行以下:測試
jmeter -n -t \tmp\cnblgo.jmx(腳本的絕對路徑)
從上圖能夠看出,腳本執行了一次,持續了0.7s,是OK的。spa
查看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,以下:
還有其餘的組合就不截圖了,須要什麼參數,直接用-J+${}+__P()便可。同理,線程組界面中的Ramp-Up Period(in seconds)也是能夠經過這種方式設置的。