使用加特林(Gatling)自动进行负载测试-顺序!

作者 : IT 大叔 本文共2780个字,预计阅读时间需要7分钟 发布时间: 2020-09-21

加特林(Gatling)教程系列:

通过加特林(Gatling)自动化您的负载测试-第一章

使用加特林(Gatling)自动进行负载测试-顺序!-第二章

这篇文章是我第一篇加特林(Gatling)文章的续篇。我知道您在想什么,续集难道不是总是la脚吗?是的,通常是这样。希望我能扭转这种趋势!通过这篇文章,我们将更深入地了解盖特林的精髓。

我的一篇文章从性能测试的总体概述开始,然后深入研究了使用Gatling Recorder来构建Gatling脚本。在这些示例中,我们使用了加特林捆绑包,但是还有另一种方法。

Gatling捆绑包是一个独立的工具,并不是在企业环境中利用Gatling时真正要使用的工具。Gatling也可以与Maven,sbt或Gradle之类的构建工具一起使用。让我们通过使用Maven原型来引导一个新的Maven项目。

引导新的加特林项目

您可以使用IDE使用原型创建一个新项目,但让我们从命令行开始即可:

mvn archetype:generate -DarchetypeGroupId=io.gatling.highcharts -DarchetypeArtifactId=gatling-highcharts-maven-archetype

系统将提示您输入groupId,artifactId,版本和软件包。确认选择后,将创建一个新项目。之后,您可能还需要设置Scala SDK。
使用加特林(Gatling)自动进行负载测试-顺序!插图

而且,您可能还需要将src/test文件夹标记为“测试源根”。
使用加特林(Gatling)自动进行负载测试-顺序!插图(2)

查看您的pom.xml文件。在那里,您将看到Gatling的依赖项。
使用加特林(Gatling)自动进行负载测试-顺序!插图(4)

运行录音机

在我的第一篇文章中,我从bin加特林捆绑包的文件夹中打开了录音机。使用Maven项目,您可以通过运行打开它src/test/resources/Recorder.scala。几秒钟后,您应该会看到记录器实用程序,该实用程序可用于记录脚本。一旦打开,记录器的功能与我之前描述的相同。记录器实用程序应如下所示:
使用加特林(Gatling)自动进行负载测试-顺序!插图(6)

我刚刚向您展示了如何从Maven项目运行Recorder。因此,现在该使用记录仪了吗?对不起,情节扭曲!

记录器可用于生成将运行的脚本,但是当然,了解所生成的代码在做什么很重要。恕我直言,仅记录仪不足以使您与Gatling相距甚远。让我们从头开始创建一个脚本,而不是使用Recorder! (有关录音机的演示,请参阅一篇文章。)

从头开始编写第一个脚本

  1. 为了创建脚本,我将使用IntelliJ IDEA社区版。如果尚未安装,则可以下载并安装。安装后,打开之前创建的项目。
  2. src/test/scala名为的文件夹中创建一个新包scripts
  3. 在名为的包中创建一个新的Scala类,HelloGatling并将其打开以进行编辑。这将是我们的脚本。
  4. 所有Gatling脚本都需要2种导入,因此我们首先将它们添加到类中:
    import io.gatling.core.Predef._
    import io.gatling.http.Predef._
    
  5. 您的课程将需要扩展Gatling Simulation类,以使其成为Gatling脚本:
    class HelloGatling extends Simulation {
    
    }
    
  6. 现在我们准备开始上课。让我们从http配置开始,该配置定义了基本URL,并将设置标题以发送json格式的数据。
    val httpConfig = http
        .baseUrl("http://computer-database.gatling.io")
        .header("Accept", "application/json")
    
  7. 现在,我们准备构建场景,该场景将描述脚本与应用程序进行的所有交互。对于此演示,我们的脚本将访问Gatling示例网站。让我们首先访问主页:
    val myScenario = scenario("Add a new computer scenario")
       .exec(
         http("load the Home Page")
           .get("/")
       )
    

    通过此代码,我们只需一步即可创建一个方案。我们为场景和步骤提供文本描述。这些描述将显示在“加特林”报告中。
    get语句访问主页。

  8. 现在,我们可以添加剩余的步骤,[1]访问“添加新计算机”页面,然后[2]发布新计算机。完整的方案如下所示:
    val myScenario = scenario("Add a new computer scenario")
      .exec(
        http("load the Home Page")
          .get("/")
      )
      .pause(5)
    
      .exec(
        http("get the Add New Computer page")
          .get("/computers/new")
      )
      .pause(5,10)
    
      .exec(
        http("Post the new computer")
          .post("/computers")
          .formParam("name", "Ionic Defibulizer")
          .formParam("introduced", "2020-01-01")
          .formParam("discontinued", "2020-06-30")
          .formParam("company", "37")
      )
    

    除了这两个新步骤之外,我们还在它们之间添加了一个暂停。 pause(5)将暂停5秒钟,pause(5,10)并将在5到10秒之间随机暂停一段时间。暂停时间可以模拟用户如何与页面进行交互。现实的暂停时间对于构建现实的场景至关重要。

  9. 好的,我们已经建立了方案。现在,我们需要定义如何添加用户。对于此脚本,我们将运行10个并发用户30秒:
    setUp(myScenario.inject(constantUsersPerSec(10) during (30 seconds)).protocols(httpConfig))
    我们还需要从Scala导入DurationInt,以便seconds解决:

    import scala.concurrent.duration.DurationInt
    

    加特林提供了多种添加用户的方法。查阅他们的文档以获取更多详细信息。

我们终于得到它了。最终产品应如下所示:
使用加特林(Gatling)自动进行负载测试-顺序!插图(8)

运行脚本

我们有两种方法来运行脚本。最简单的方法可能是使用Maven在命令行中进行的:

mvn gatling:test -Dgatling.simulationClass=scala.scripts.HelloGatling

另一个选择是运行src/test/resources/Engine.scala。这是从文件夹运行Gatling时在第一篇文章中使用的实用程序bin

无论选择哪种方法,新创建的脚本都应运行,并且结果应如下所示:
使用加特林(Gatling)自动进行负载测试-顺序!插图(10)

因此,从头开始有您的第一个脚本。它与录制的脚本没有太大不同,但是希望您对如何使用Maven创建新的Gatling项目有更好的了解,并且对脚本的内部工作有一些了解。

免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » 使用加特林(Gatling)自动进行负载测试-顺序!

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论