1分鍾學會linux下jmeter分布式壓測流程


​    最近公司要求要壓測幾個主要的借口,並且要輸出最終的壓測報告,因為壓測報告要給甲方爸爸們看,讓他們相信我們的服務是杠杠的,嘿嘿~。其實甲方爸爸們主要是想看服務器參數以及接口的負載能力(tps),於是我就壓測了幾個接口,發現了一些問題,針對有問題的接口做了一些優化。

    其實做一下壓測是挺好的,可以發現很多測試環境不會出現的問題,比如可能緩存沒命中,直接穿透到db等等。壓測出來的結果,看到單機(4核8G)tps低於1000的,我們都進行了優化,tps怎么也要超過1000吧。因為一直都是使用jmeter來做壓測,下面我們就來簡單說一下jmeter壓測的流程和一些注意事項。

 

一、壓測流程。

  1. 在windows下面通過gui打開jmeter,創建測試計划以及壓測腳本test.jmx,注意,動態配置的參數,可以使用變量來控制,以方面在linux下用命令行進行壓測的時候,動態修改參數,如下圖:

     

    圖來自:https://www.cnblogs.com/ailiailan/archive/2019/09/17/11519976.html

     

  2. 把test.jmx腳本文件放到linux服務器,使用以下命令進行壓測(壓測不建議使用gui模式運行,gui模式會占用一定的系統資源)。

     

    jmeter -n -t test.jmx -J threadNum=10 -J threadCount=2 -l result.jtl

 

      -n表示以no gui模式運行;

      -t指定腳本文件,這里是 test.jmx

      -J選項傳遞動態參數,對應創建jmx腳本的時候設置的相關參數

      -l是指定結果監聽器(比如聚合報告之類的)文件,這里是result.jtl

 

    3.壓測過程中輸出的大概如下,可參考圖中的備注理解每個字段的意思:

 

                圖來自:https://www.bbsmax.com/A/Vx5MRkZ3dN

 

    4.壓測結果如果要生成html形式的報告,使用以下命令可以將result.jtl文件生成html的形式。

jmeter -g result.jtl -o ./html

  

    -g指定生成結果文件,這里是result.jtl;

    -o指定生成的html結果文件目錄,注意是目錄,這里是html目錄,最終生成的html相關文件會放到html目錄下面

 

    如果result.jtl比較大的話,轉換的過程可能有點慢,要等一下。生成的html要傳到window端,用瀏覽器打開即可,生成的html相關文件如下:

    

 

 用瀏覽器打開如下:

 

    5.生成的result.jtl,可以傳到windows本地,使用jmeter查看相關的結果,使用jmeter新建一個測試計划,然后在該測試計划下面創建對應的監聽器之后,點擊監聽器右邊的瀏覽按鈕,選中result.jtl,打開就可以看到對應的result.jtl的結果,大概如下圖:

 

    

    圖中的Thoughput就是tps

    下面對聚合報告中的字段進行解讀:

    Label:請求的名稱,就是我們在進行測試的httprequest sampler的名稱

    Samples:總共發給服務器的請求數量,如果模擬10個用戶,每個用戶迭代10次,那么總的請求數為:10*10 =100次;

    Average:默認情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,以Transaction 為單位顯示平均響應時間 ,單位是毫秒

    Median: 50%用戶的請求的響應時間,中位數

    90%Line:90%的請求的響應時間

    95%Line:95%的請求的響應時間

    99%Line:99%的請求的響應時間

    Min:最小的響應時間

    Max:最大的響應時間

    Error%:錯誤率=錯誤的請求的數量/請求的總數

    Throughput: 默認情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數 

    Received KB/sec: 每秒從服務器端接收到的數據量,即:收到的千字節每秒的吞吐量測試

    Sent KB/sec: 每秒從客戶端發出的的數據量,即:發送的千字節每秒的吞吐量測試

 

ps.

    1.jmeter在linux下的安裝和配置教程,這里就不贅述了,網上很多教程

    2.jmeter壓測腳本的編寫,網上也很多教程~

 

二、注意事項:

 

    1.有時候壓測機(運行jmeter的機器)也會成為瓶頸,比如通過https進行壓測的時候,壓測機的cpu就直接100%了,如果是http的話就沒問題,https是多了證書的加解密驗證過程,挺耗cpu的。這時候可以通過幾台機進行壓測,jmeter原生支持分布式進行壓測。

 

    2.盡量使用no gui的模式進行壓測,同時壓測機(運行jmeter的機器)要和接口服務器分開,jmeter進行壓測的時候,也是很耗資源的。

 

    3.測試之后,如果某些接口tps很低,可以通過jprofile,jstack,jvisualVM之類的工具進行調優,接口response body很大的,可以考慮壓縮之后再返回(比如tomcat,undertow等容器內部自帶壓縮機制)。

 

參考:

https://www.cnblogs.com/ailiailan/archive/2019/09/17/11519976.html

 

                      歡迎關注微信公眾號“ismallboy”,請掃碼並關注以下公眾號,並在公眾號下面回復“jmeter”,獲得本文最新內容。

                                                           


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM