SBT-сборка Gatling fat jar - PullRequest
       85

SBT-сборка Gatling fat jar

0 голосов
/ 03 апреля 2020

Я новичок в Гатлинге и 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, пожалуйста, помогите

...