美文网首页测试平台
使用 Gatling 进行负载测试

使用 Gatling 进行负载测试

作者: ADADACHAN | 来源:发表于2021-08-13 11:25 被阅读0次

    使用 Gatling 进行负载测试

    1.简述

    Gatling 对自定义 Web 应用程序进行负载测试。在本文中,我们将使用 Gatling 压力工具来衡量本网站登台环境的性能。

    2.测试场景

    让我们首先设置我们的主要使用场景——一个接近可能正在浏览网站的典型用户的场景:

    1)进入主页

    2)从主页打开文章

    3)转到指南/休息

    4)转到 REST 类别

    5)转到完整档案

    6)从档案中打开一篇文章

    3.记录场景

    $GATLING_HOME/bin/recorder.sh 或者是Windows 环境直接bin/recorder.bat

    注意:GATLING_HOME 是您的 Gatling 安装目录。

    Gatling Recorder 有两种模式:HTTP 代理和 HAR 转换器。

    我们在之前的教程中详细讨论了 HTTP 代理模式 - 现在让我们看看 HAR 转换器选项。

    4.HAR 转换器

    HAR 是 HTTP Archive 的缩写 - 这是一种基本上记录有关浏览会话的完整信息的格式。

    我们可以从浏览器获取 HAR 文件,然后使用 Gatling Recorder 将其转换为模拟。

    我们将在 Chrome 开发者工具的帮助下创建我们的 HAR 文件:

    1)菜单 -> 更多工具 -> 开发者工具

    2)转到网络选项卡

    3)确保选中保留日志

    4)完成网站导航后,右键单击要导出的请求

    5)然后,选择全部复制为 HAR

    6)将它们粘贴到文件中,然后从 Gatling 记录器导入

    根据您的喜好调整 Gatling 记录器后,单击开始。请注意,输出文件夹默认为 GATLING_HOME/user-files-simulations

    5.模拟

    classRestSimulationextendsSimulation{

        val httpProtocol = http.baseURL("http://www.taobao.com")

        val scn = scenario("RestSimulation")

          .exec(http("home").get("/"))

          .pause(23)

          .exec(http("article_1").get("/spring-rest-api-metrics"))

          .pause(39)

          .exec(http("rest_series").get("/rest-with-spring-series"))

          .pause(60)

          .exec(http("rest_category").get("/category/rest/"))

          .pause(26)

          .exec(http("archive").get("/full_archive"))

          .pause(70)

          .exec(http("article_2").get("/spring-data-rest-intro"))

        setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)

    }

    6.运行负载测试

    执行bin/gating.bat 或者是gating.sh

    Gatling 工具将扫描 GATLING_HOME/user-files-simulations 并列出所有找到的模拟供我们选择。

    运行模拟后,结果如下所示:

    Simulation computerdatabase.advanced.AdvancedSimulationStep01 started...

    ================================================================================

    2021-08-13 11:14:26                                          5s elapsed

    ---- Requests ------------------------------------------------------------------

    > Global                                                  (OK=5      KO=0    )

    > Home                                                    (OK=2      KO=0    )

    > Home Redirect 1                                          (OK=1      KO=0    )

    > Search                                                  (OK=1      KO=0    )

    > Select                                                  (OK=1      KO=0    )

    ---- Scenario Name -------------------------------------------------------------

    [--------------------------------------------------------------------------]  0%

              waiting: 0      / active: 1      / done: 0

    ================================================================================

    ================================================================================

    2021-08-13 11:14:31                                          10s elapsed

    ---- Requests ------------------------------------------------------------------

    > Global                                                  (OK=9      KO=0    )

    > Home                                                    (OK=2      KO=0    )

    > Home Redirect 1                                   (OK=2      KO=0    )

    > Search                                                  (OK=1      KO=0    )

    > Select                                                  (OK=1      KO=0    )

    > Page 1                                                  (OK=1      KO=0    )

    > Page 2                                                  (OK=1      KO=0    )

    > Page 3                                                  (OK=1      KO=0    )

    ---- Scenario Name -------------------------------------------------------------

    [--------------------------------------------------------------------------]  0%

              waiting: 0      / active: 1      / done: 0

    ================================================================================

    ================================================================================

    2021-08-13 11:14:36                                          15s elapsed

    ---- Requests ------------------------------------------------------------------

    > Global                                                  (OK=10    KO=0    )

    > Home                                                    (OK=2      KO=0    )

    > Home Redirect 1                                  (OK=2      KO=0    )

    > Search                                                  (OK=1      KO=0    )

    > Select                                                  (OK=1      KO=0    )

    > Page 1                                                  (OK=1      KO=0    )

    > Page 2                                                  (OK=1      KO=0    )

    > Page 3                                                  (OK=1      KO=0    )

    > Page 4                                                  (OK=1      KO=0    )

    ---- Scenario Name -------------------------------------------------------------

    [--------------------------------------------------------------------------]  0%

              waiting: 0      / active: 1      / done: 0

    ================================================================================

    ================================================================================

    2021-08-13 11:14:38                                          17s elapsed

    ---- Requests ------------------------------------------------------------------

    > Global                                                  (OK=13    KO=0    )

    > Home                                                    (OK=2      KO=0    )

    > Home Redirect 1                                   (OK=2      KO=0    )

    > Search                                                  (OK=1      KO=0    )

    > Select                                                  (OK=1      KO=0    )

    > Page 1                                                  (OK=1      KO=0    )

    > Page 2                                                  (OK=1      KO=0    )

    > Page 3                                                  (OK=1      KO=0    )

    > Page 4                                                  (OK=1      KO=0    )

    > Form                                                      (OK=1      KO=0    )

    > Post                                                       (OK=1      KO=0    )

    > Post Redirect 1                                      (OK=1      KO=0    )

    ---- Scenario Name -------------------------------------------------------------

    [##########################################################################]100%

              waiting: 0      / active: 0      / done: 1

    ================================================================================

    Simulation computerdatabase.advanced.AdvancedSimulationStep01 completed in 17 seconds

    Parsing log file(s)...

    Parsing log file(s) done

    Generating reports...

    ================================================================================

    ---- Global Information --------------------------------------------------------

    > request count                                        13 (OK=13    KO=0    )

    > min response time                               299 (OK=299    KO=-    )

    > max response time                              605 (OK=605    KO=-    )

    > mean response time                           324 (OK=324    KO=-    )

    > std deviation                                          81 (OK=81    KO=-    )

    > response time 50th percentile                        300 (OK=300    KO=-    )

    > response time 75th percentile                        301 (OK=301    KO=-    )

    > response time 95th percentile                        424 (OK=424    KO=-    )

    > response time 99th percentile                        569 (OK=569    KO=-    )

    > mean requests/sec                                  0.722 (OK=0.722  KO=-    )

    ---- Response Time Distribution ------------------------------------------------

    > t < 800 ms                                            13 (100%)

    > 800 ms < t < 1200 ms                                  0 (  0%)

    > t > 1200 ms                                            0 (  0%)

    > failed                                                0 (  0%)

    ================================================================================

    可以查看出的报告

    7.结论

    gatling 使用scala的语言进行编写,语法还是需要看的。

    您的计算机上安装 Scala 3,通过 sbt 或通过 Coursier。

    相关文章

      网友评论

        本文标题:使用 Gatling 进行负载测试

        本文链接:https://www.haomeiwen.com/subject/atydbltx.html