【问题标题】:Executing Gatling load tests from SBT从 SBT 执行 Gatling 负载测试
【发布时间】:2016-08-16 03:26:31
【问题描述】:

我使用 Spray 框架编写了一个小型 Web 服务。我可以使用sbt run 运行它,然后在浏览器中进行测试。

现在我使用 Gatling 框架编写了一个负载测试。

package com.abhi

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._

class LoadTest extends Simulation {
   val httpConf = http
      .baseURL("http://localhost:8999")
      .acceptHeader("application/json")
      .doNotTrackHeader("1")
      .acceptLanguageHeader("en-US,en;q=0.5")
      .acceptEncodingHeader("gzip, deflate")
      .userAgentHeader("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0")

   val scn = scenario("BasicSimulation")
      .exec(http("request_1")
      .get("/path1"))
      .pause(5)

   setUp(
      scn.inject(atOnceUsers(10))
   ).protocols(httpConf)
}

测试位于文件夹src/test/scala-2.11,喷码位于src/main/scala-2.11

当我运行sbt test 时,它只会打印成功,而无需运行我的 Web 服务器或运行上面定义的测试。它只是在 3 秒内打印成功并退出。

我该怎么做

  1. 确保当我执行sbt test 时,spray web 应用程序是 开始了
  2. galing 负载测试针对已启动的服务器运行

编辑:我也试过sbt test scenarios:BasicSimulation,但它抛出了错误

Not a valid key: BasicSimulation
[error] scenarios:BasicSimulation

【问题讨论】:

    标签: scala sbt spray gatling


    【解决方案1】:

    您必须使用Gatling sbt plugin 从 sbt 触发。注意它不是在默认配置下运行,而是在the gatling one:gatling:test。

    【讨论】:

    • 谢谢!我配置了插件,我可以做 gating:test 但它仍然没有启动喷雾服务器。我可以让 gatling:test 也“运行”吗?如果我做一个sbt run gatling:test,它永远不会停止运行,所以永远不会去加特林:测试
    • 也许 sbt 专家可以向您解释如何做到这一点。然后,您可以运行 2 个不同的 sbt 进程。但是,从负载测试的角度来看,这仍然没有意义:您将在 localhost 和 Gatling 上进行测试,并且被测应用将共享资源 (CPU),因此您的结果将完全无关紧要。
    • 非常感谢您的帮助。我将使用更具体的 sbt 标签打开另一个问题。
    【解决方案2】:

    Gatling 已编写为 Scala 应用程序 - 它按照标准 JVM 应用程序启动 - 您可以在 startup script gatling.sh 中看到这一点:

    # Run Gatling
    java $JAVA_OPTS -cp "$GATLING_CLASSPATH" io.gatling.app.Gatling "$@"
    

    SBT 不“知道”如何启动 Gatling Simulation,就像它“知道”如何运行 Specs2 Specification 一样。幸运的是,似乎有一个 Gatling SBT 插件可用,正是你想要的 - 查看demo project on GitHub。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-28
      • 1970-01-01
      相关资源
      最近更新 更多