我实际上如何 运行 通过 SBT 进行 Gatling 测试
How do I actually run the Gatling test via SBT
我正在尝试使用 Gatling 对 Web 服务进行负载测试。这是我的 build.sbt
import io.gatling.sbt.GatlingPlugin
val gatlingVersion = "2.2.4"
val dependencies = Seq(
"io.gatling" % "gatling-core" % gatlingVersion,
"io.gatling" % "gatling-http" % gatlingVersion
)
lazy val project =
Project("gattling-tests", file("."))
.enablePlugins(GatlingPlugin)
.settings(
javaOptions in Gatling := overrideDefaultJavaOptions("-Xmx4G"),
scalaVersion := "2.12.1",
libraryDependencies ++= dependencies
)
在测试文件夹下,我创建了一个 class,它扩展了 Simulation,它有我的场景和 http 请求。
import io.gatling.core.Predef._
import io.gatling.http.Predef._
class ShieldAuthLoadTests extends Simulation {
val httpConf = http
.baseURL("http://localhost:8080/api/1/")
.acceptHeader("application/json")
.contentTypeHeader("json")
val login = http("Login")
.post("login")
.formParam("username", "foo")
.formParam("password", "bar")
.check(status.is(200), jsonPath("$..response.id").ofType[String].saveAs("id"))
val get = http("get")
.get("/api/api1")
.header("token1", "$id")
.check(status.is(200), jsonPath("$..response").exists)
val scn = scenario("scn")
.exec(login)
.pause(3)
.exec(get)
setUp(scn.inject(atOnceUsers(10)).protocols(httpConf))
}
我希望当我进行 sbt gatling:test
时它会 运行 加特林测试。但是当我 运行 sbt gatling:test
它没有 运行 测试就成功了。
quickstart 文档说 $GATLING_HOME/bin/gatling.sh
但我没有 gatling.sh 因为我想通过 SBT 进行测试。
文档有点不一致,因为我 运行 遇到过类似的问题。
我的项目总是基于 this 以确保万无一失。
无论如何,这看起来像是您的依赖项的问题。尝试将它们更改为此...
val dependencies = Seq(
"io.gatling.highcharts" % "gatling-charts-highcharts" % "2.2.4" % "test,it",
"io.gatling" % "gatling-test-framework" % "2.2.4" % "test,it"
)
或见here。
检查您的模拟是否在 src/test/scala
文件夹中创建,请参阅 https://gatling.io/docs/3.0/extensions/sbt_plugin/#default-settings
我正在尝试使用 Gatling 对 Web 服务进行负载测试。这是我的 build.sbt
import io.gatling.sbt.GatlingPlugin
val gatlingVersion = "2.2.4"
val dependencies = Seq(
"io.gatling" % "gatling-core" % gatlingVersion,
"io.gatling" % "gatling-http" % gatlingVersion
)
lazy val project =
Project("gattling-tests", file("."))
.enablePlugins(GatlingPlugin)
.settings(
javaOptions in Gatling := overrideDefaultJavaOptions("-Xmx4G"),
scalaVersion := "2.12.1",
libraryDependencies ++= dependencies
)
在测试文件夹下,我创建了一个 class,它扩展了 Simulation,它有我的场景和 http 请求。
import io.gatling.core.Predef._
import io.gatling.http.Predef._
class ShieldAuthLoadTests extends Simulation {
val httpConf = http
.baseURL("http://localhost:8080/api/1/")
.acceptHeader("application/json")
.contentTypeHeader("json")
val login = http("Login")
.post("login")
.formParam("username", "foo")
.formParam("password", "bar")
.check(status.is(200), jsonPath("$..response.id").ofType[String].saveAs("id"))
val get = http("get")
.get("/api/api1")
.header("token1", "$id")
.check(status.is(200), jsonPath("$..response").exists)
val scn = scenario("scn")
.exec(login)
.pause(3)
.exec(get)
setUp(scn.inject(atOnceUsers(10)).protocols(httpConf))
}
我希望当我进行 sbt gatling:test
时它会 运行 加特林测试。但是当我 运行 sbt gatling:test
它没有 运行 测试就成功了。
quickstart 文档说 $GATLING_HOME/bin/gatling.sh
但我没有 gatling.sh 因为我想通过 SBT 进行测试。
文档有点不一致,因为我 运行 遇到过类似的问题。
我的项目总是基于 this 以确保万无一失。
无论如何,这看起来像是您的依赖项的问题。尝试将它们更改为此...
val dependencies = Seq(
"io.gatling.highcharts" % "gatling-charts-highcharts" % "2.2.4" % "test,it",
"io.gatling" % "gatling-test-framework" % "2.2.4" % "test,it"
)
或见here。
检查您的模拟是否在 src/test/scala
文件夹中创建,请参阅 https://gatling.io/docs/3.0/extensions/sbt_plugin/#default-settings