天天看点

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           

复制

按下回车键,就会显示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测试工具对服务端的负载很高,比较适合在在微服务的架构下验证服务的队列机制和高并发下服务的响应机制以及承载能力。感谢您的阅读,后续会持续介绍该工具对服务端的案例应用。