1. 程式人生 > 實用技巧 >Jmeter壓力測試

Jmeter壓力測試

壓測設定

  • 執行緒數:併發數量,能跑多少量。具體說是一次存在多少使用者同時訪問
  • Rame-Up Period(in seconds):表示在多長時間內啟動完上述的執行緒數。
  • 迴圈次數:這個設定不會改變併發數,可以延長併發時間。總請求數=執行緒數*迴圈次數
  • 排程器:設定壓測的啟動時間、結束時間、持續時間和啟動延遲時間。

壓測結果檢視

  • Samples:表示一共發出的請求數
  • Average:平均響應時間,預設情況下是單個Request的平均響應時間(ms)
  • Error%:測試出現的錯誤請求數量百分比。若出現錯誤就要看服務端的日誌,配合開發查詢定位原因
  • Throughput:簡稱tps,吞吐量,預設情況下表示每秒處理的請求數,也就是指伺服器處理能力,tps越高說明伺服器處理能力越好。

壓測結果分析

  • 有錯誤率同開發確認,確定是否允許錯誤的發生或者錯誤率允許在多大的範圍內;
  • Throughput吞吐量每秒請求的數大於併發數,則可以慢慢的往上面增加;若在壓測的機器效能很好的情況下,出現吞吐量小於併發數,說明併發數不能再增加了,可以慢慢的往下減,找到最佳的併發數;
  • 壓測結束,·登陸相應的web伺服器檢視CPU等效能指標,進行資料的分析;
  • 最大的tps:不斷的增加併發數,加到tps達到一定值開始出現下降,那麼那個值就是最大的tps。
  • 最大的併發數:最大的併發數和最大的tps是不同的概率,一般不斷增加併發數,達到一個值後,伺服器出現請求超時,則可認為該值為最大的併發數。
  • 壓測過程出現效能瓶頸,若壓力機工作管理員檢視到的cpu、網路和cpu都正常,未達到90%以上,則可以說明伺服器有問題,壓力機沒有問題。
  • 影響效能考慮點包括:資料庫、應用程式、中介軟體(tomact、Nginx)、網路和作業系統等方面。

CLI模式(no-GUI)執行

  • 在cmd中,CD到目標資料夾

  • 執行命令

    jmeter -n -t [jmx file] -l [result file] -e -o [Path to output folder]
    

    引數說明:

    • jmx file:測試計劃的檔名稱,預設從當前資料夾中尋找(.jmx格式)
    • result file:輸出檔案路徑(.jtl格式)
    • Path to output folder:要儲存的report檔案路徑
    • -n:非GUI模式執行Jmeter
    • -t:執行測試檔案所在的位置
    • -l:指定生成測試結果的儲存檔案(該檔案必須不存在),jtl檔案格式
    • -e:測試結束後生成測試報告
    • -o:指定測試報告的存放位置,資料夾必須不存在或為空
  • 輸出結果解釋(Html檔案中的資料解釋),在reportgenerator.properties配置檔案中修改Html圖表中的相關設定。

    • Dashboard中:

      • Test and Report informations:指的是測試和報告資訊
      • APDEX(Application Performance Index):應用程式效能滿意度的標準,範圍在0-1之間,1表示達到所有使用者均滿意,越接近1滿意度越高
      • Requests Summary:請求的通過率(OK)與失敗率(KO),百分比顯示
      • Statistics:資料分析,基本將Summary Report和Aggrerate Report的結果合併
      • Errors:錯誤情況,依據不同的錯誤型別,將所有錯誤結果展示
    • Charts:用圖表的形式展示測試資料,讓測試報告更加直觀
      主要有如下特點:
      (1)將測試過程中經常使用的資料,用圖表的形式展示,讓測試結果更加直觀
      (2)每個圖表資料,有兩種展示形式
      (3)支援請求樣例過濾顯示
      (4)支援匯出PNG圖片格式

      Over Time Charts:

      • Response Times Over Time:每秒鐘響應時間,X軸表示的是系統執行的時刻,Y軸表示的是響應時間,F(X,Y)表示系統隨著時間的推移,系統的響應時間的變化,可以看出響應時間穩定性
      • Response Time Percentiles Over Time (successful responses):隨時間變化的響應時間百分比
      • Active Threads Over Time:每秒的活動執行緒數
      • Bytes Throughput Over Time:位元組接收與傳送的數量,每秒傳輸位元組吞吐量,表明Jmeter在測試時,隨著時間推移傳送和接收的位元組數
      • Latencies Over Time:延遲時間
      • Connect Time Over Time:連線時間

      Throughput Charts:

      • Hits Per Second: 每秒點選率
      • Codes Per Second:每秒狀態碼數量
      • Transactions Per Second:每秒事務量
      • Response Time Vs Request:響應時間點請求的成功與失敗數
      • Latency Vs Request:延遲時間點請求的成功與失敗數

      Response Times Charts:

      • Response Time Percentiles:響應時間百分比
      • Response Time Overview:響應時間概述
      • Time Vs Threads:響應時間使用者數, X軸表示的是活動執行緒數,也就是併發訪問的使用者數,Y軸表示的是響應時間,F(X,Y)表示在某種併發量的情況下,系統的響應時間是多少
      • Response Time Distribution:響應時間分佈