1. 程式人生 > >jmeter使用中最佳實踐方法

jmeter使用中最佳實踐方法

clu control 模擬 rem 添加 語言 html 需求 threads

官方文檔(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; 如果使用
    上面
    -l選項,可以刪除或禁用它們。
  • 在加載測試期間,請勿使用"View Results Tree" 或者"View Results in Table" 偵聽器,僅在腳本編寫階段使用它們來調試腳本。
  • 在循環中使用相同的采樣器,而不是使用大量類似的采樣器,並使用變量(CSV數據集)來改變樣本。[Include Controller在這裏沒有幫助,因為它將文件中的所有測試元素添加到測試計劃中。]
  • 不要使用functional模式
  • 使用CSV輸出而不是XML
  • 僅保存您需要的數據
  • 使用盡可能少的斷言
  • 使用性能最佳的腳本語言(參見JSR223部分)

如果您的測試需要大量數據 - 特別是如果需要隨機化 - 請在可以使用CSV數據集讀取的文件中創建測試數據。這可以避免在運行時浪費資源

三、開發腳本函數(TODO)

等實踐後更新

jmeter使用中最佳實踐方法