Я новичок в Гатлинге и SBT. Я пытаюсь построить толстую банку с гатлингом, чтобы банку можно было запустить. Ниже то, что у меня есть. У меня есть папка стресс-теста внутри BankingProject.
Структура каталогов:
BankingProject
app
conf
stress-test
src
test
resources
gatling.conf
loadtest.conf
logback.xml
scala
load
Simulator.scala
app
project
plugins.sbt
build.properties //just has sbt.version=1.3.3
build.sbt
project
build.sbt
Содержимое стресс-теста / build.sbt:
enablePlugins(GatlingPlugin)
scalaVersion := "2.12.10"
libraryDependencies += "io.gatling.highcharts" % "gatling-charts-highcharts" % "3.3.1" % "test,it"
libraryDependencies += "io.gatling" % "gatling-test-framework" % "3.3.1" % "test,it"
scalaSource in Gatling := sourceDirectory.value / "test" / "scala"
lazy val root = (project in file(".")).settings(inConfig(Gatling)(Defaults.testSettings): _*)
.settings(
mainClass in assembly := Some("load.Simulator")
)
Содержание стресс-теста / проекта / plugins.sbt:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10")
addSbtPlugin("io.gatling" % "gatling-sbt" % "3.1.0")
Содержание симулятора. scala:
import scala.concurrent.duration._
import java.util.concurrent.ThreadLocalRandom
import io.gatling.core.Predef._
import io.gatling.http.Predef._
class Simulator extends Simulation {
val httpProtocol = http
.baseUrl("http://localhost:8080")
.inferHtmlResources()
.disableCaching
val getScn = scenario("stress runs")
.exec(http("BankStatus")
.get("/bank/status")
.check(status is 200))
setUp(
getScn.inject(
constantUsersPerSec(200) during (10 seconds)
).protocols(httpProtocol)
)
}
Моя цель состоит в том, чтобы получить Uber JAR, такой, что когда я запускаю приведенную ниже команду, я получаю отчет gatling
java -cp ./target/scala-2.12/uberjar-1.0.jar io.gatling.app.Gatling -s load.Simulator
Но: когда я запускаю sbt test: assembly from папка стресс-теста, надеясь получить Uber JAR, создает ./target/scala-2.12/root-assembly-0.1.0-SNAPSHOT.jar И этот jar содержит только scala пакетов, таких как scala / util / ..... scala / sys / .. scala / runtime .. И не содержит ничего, связанного с Gatling, и ничего, связанного с scala файлами, которые я написал
И когда я запускаю 'sbt test: package 'он создает ./target/scala-2.12/root_2.12-0.1.0-SNAPSHOT-tests.jar всего с 4 файлами
loadtest.conf
logback.xml
Simulation.class
gatling.conf
и работает
java -cp ./target/scala-2.12/<<jarcreatedabove>>-1.0.jar io.gatling.app.Gatling -s load.Simulator
против 2 банок выдает "Ошибка: Co Вы не можете найти или загрузить основной класс io.gatling.app.Gatling "
Как я могу создать Uber JAR, пожалуйста, помогите