天天看點

Gatling性能測試(一)

初識Gatling

Gatling是一款基于Scala 開發的高性能伺服器性能測試工具,同時也是一款功能強大的負載測試工具,它為易于使用,高可維護性和高性能而設計。開箱即用,Gatling由于對HTTP協定的出色支援,使其成為負載測試任何HTTP伺服器的首選工具。官方位址:https://gatling.io/get-started/。

使用Gatling前首先需要搭建Java的環境,保障已經搭建了Java的環境。下載下傳位址為:https://gatling.io/open-source/,下載下傳成功後,進行解壓,目錄資訊為:

Gatling性能測試(一)

下來進行配置環境,配置後的資訊具體為:

#Gatling
export GATLING_HOME=/Applications/devOps/tools/gatling
export PATH=$PATH:$GATLING_HOME/bin           

複制

配置環境變量成功後,在控制台輸入:

recorder.sh           

複制

按下Enter鍵,就會顯示Gatling的GUI的界面,具體如下:

Gatling性能測試(一)

Gatling實戰

下面就以官方的案例來示範下Gatling的基本使用,在控制台執行輸入如下指令:

gatling.sh
#輸入如上的指令後,顯示如下的資訊
GATLING_HOME is set to /Applications/devOps/tools/gatling
Choose a simulation number:
[0] computerdatabase.BasicSimulation
[1] computerdatabase.advanced.AdvancedSimulationStep01
[2] computerdatabase.advanced.AdvancedSimulationStep02
[3] computerdatabase.advanced.AdvancedSimulationStep03
[4] computerdatabase.advanced.AdvancedSimulationStep04
[5] computerdatabase.advanced.AdvancedSimulationStep05
#在控制台輸入0,就會顯示輸入的資訊,以及最後顯示測試報告的結果資訊,具體詳細過程如下
0
Select run description (optional)

Simulation computerdatabase.BasicSimulation started...

Generating reports...

================================================================================
---- Global Information --------------------------------------------------------
> request count                                         13 (OK=13     KO=0     )
> min response time                                    241 (OK=241    KO=-     )
> max response time                                   1478 (OK=1478   KO=-     )
> mean response time                                   458 (OK=458    KO=-     )
> std deviation                                        339 (OK=339    KO=-     )
> response time 50th percentile                        301 (OK=301    KO=-     )
> response time 75th percentile                        527 (OK=527    KO=-     )
> response time 95th percentile                       1100 (OK=1100   KO=-     )
> response time 99th percentile                       1402 (OK=1402   KO=-     )
> mean requests/sec                                  0.448 (OK=0.448  KO=-     )
---- Response Time Distribution ------------------------------------------------
> t < 800 ms                                            11 ( 85%)
> 800 ms < t < 1200 ms                                   1 (  8%)
> t > 1200 ms                                            1 (  8%)
> failed                                                 0 (  0%)
================================================================================

Reports generated in 0s.
Please open the following file: /Applications/devOps/tools/gatling/results/basicsimulation-20211101134633997/index.html           

複制

打開最後的HT ML的測試報告,會顯示詳細的性能測試結果資料和對應的名額資料,具體如下所示:

Gatling性能測試(一)
Gatling性能測試(一)
Gatling性能測試(一)

下面來測試登入服務的性能,需要編寫具體的測試腳本,具體為:在gatling/user-files/simulations/computerdatabase目錄下,編寫案例代碼,具體代碼是使用Scala語言進行編寫的,源碼如下:

Gatling性能測試(一)

編寫代碼成功後,再次執行gatling.sh,顯示如下:

Gatling性能測試(一)

選擇1,開始執行,如下是執行的結果資訊,具體結果如下:

Gatling性能測試(一)
Gatling性能測試(一)

結合如上的案例,可以看到Gatling測試工具對服務端的負載很高,比較适合在在微服務的架構下驗證服務的隊列機制和高并發下服務的響應機制以及承載能力。感謝您的閱讀,後續會持續介紹該工具對服務端的案例應用。