顧名思義,jmeter在做性能測試時,可以在不停止腳本的情況下修改負載壓力,達到期望的測試效果。我們將通過Constant Throughput Timer(吞吐量計時器)和Beanshell服務器來組合完成。
1:在jmeter中添加Constant Throughput Timer。我們將通過設置“目標吞吐量”值來控制在測試中每分鍾執行的請求數。由於我們要通過命令行更新此值,因此必須將其定義為參數。通過編寫${__P(hits,1200)},默認值將設置為1200。
吞吐量將基於每個線程進行調整,重要的是要注意調整負載,因此盡量把運行時間加長一些以注意吞吐量的變化。所以我們加入了運行時間控制器以延長運行時間。
2:使用JMeter Beanshell作為服務器,以便發出Beanshell命令。我們通過調用beanshell函數來更新先前定義的“hits”參數。Beanshell是一個內置於JMeter中的Java源代碼解釋器。
在jmeter.properties上取消注釋以下行:
重啟jmeter,並在主目錄下打開cmd查看端口運行狀態
Netstat -an | find “9000”
在JMeter主目錄下創建文件夾bsh,並添加一個名為update_parameter.bsh的.bsh文件,其中包含以下內容:
setprop("hits",args[0]);
在主目錄下打開cmd命令,執行 dir bash\
文件調用setprop函數以通過第一個參數(args [0])中的值更新“hits”
現在能夠在測試運行時調用創建的.bsh來更新“hits”。在主目錄下通過以下命令將參數更新為每分鍾“1200”個請求:
java -jar .\lib\bshclient.jar localhost 9000 .\bsh\update_parameter.bsh 1200
觀察運行中的吞吐量,有明顯的改變
你還在為找不到可練習的接口而煩惱嗎?現在加入龍淵閣,我們手把手教你搭建屬於自己的接口測試環境!