jmeter使用中最佳實踐方法
官方文檔(Best Practices-最佳實踐部分摘選):https://jmeter.apache.org/usermanual/best-practices.html
一、線程組
Use the correct Number of Threads(使用正確的線程數)
硬件能力以及測試計劃設計都將影響使用JMeter有效運行的線程數量,這個數字還取決於服務器的速度(更快的服務器使JMeter工作更努力,因為它返回響應更快),與任何負載測試工具一樣,如果不正確地調整線程的數量,您將面臨“Coordinated Omission”問題,這會導致錯誤或不準確的結果。如果需要大規模負載測試,請考慮使用分布式模式(或不使用分布式模式)在多臺機器上運行多個非GUI JMeter實例。當使用分布式模式時,結果文件將在Controller節點上組合,如果使用多個自治實例,則示例結果文件可以組合用於後續分析。為了測試jmeter在給定的平臺表現如何,可以使用JavaTest取取器,它不需要任何網絡訪問,因此可以給出關於可達到的最大吞吐量的一些想法。
JMeter有一個選項可以延遲線程創建,直到線程開始采樣,即在任何線程組延遲和線程本身的ramp-up time之後。這允許一個非常大的線程總數,前提是沒有太多同時活動的線程。
------來自官方文檔:https://jmeter.apache.org/usermanual/best-practices.html
每個線程均獨立運行測試計劃。因此, 線程組常用來模擬並發用戶訪問。假如客戶機沒有足夠的能力來模擬較重的負載,可以使用Jmeter的分布式測試功能來通過一個Jmeter控制臺來遠程控制多個Jmeter引擎完成測試。
在“測試計劃”上右鍵 【添加】-->【Threads(Users)】-->【線程組】
二、避免人為的壓測服務器資源浪費
Reducing resource requirements(減少資源需求)
關於減少資源使用的一些建議:
- 使用非GUI模式:jmeter -n -t test.jmx -l test.jtl
- 使用盡可能少的Listeners; 如果使用
- 在加載測試期間,請勿使用"View Results Tree" 或者"View Results in Table" 偵聽器,僅在腳本編寫階段使用它們來調試腳本。
- 在循環中使用相同的采樣器,而不是使用大量類似的采樣器,並使用變量(CSV數據集)來改變樣本。[Include Controller在這裏沒有幫助,因為它將文件中的所有測試元素添加到測試計劃中。]
- 不要使用functional模式
- 使用CSV輸出而不是XML
- 僅保存您需要的數據
- 使用盡可能少的斷言
- 使用性能最佳的腳本語言(參見JSR223部分)
如果您的測試需要大量數據 - 特別是如果需要隨機化 - 請在可以使用CSV數據集讀取的文件中創建測試數據。這可以避免在運行時浪費資源
三、開發腳本函數(TODO)
等實踐後更新
jmeter使用中最佳實踐方法