Как связать мой нагрузочный тест Gatling на основе Maven в один JAR?

Я создал нагрузочный тест Гатлинга, используя архетип highcharts. Я решил не загружать последний ZIP-файл Gatling и не создавать симуляцию в извлеченной папке, поскольку я полагаюсь на количество зависимостей в общедоступных и частных репозиториях Maven.

Я хочу

  1. объединить мою симуляцию и все ее зависимости в один JAR,
  2. распространите JAR на несколько генераторов нагрузки в EC2/GCE и
  3. запустить тест на всех удаленных генераторах нагрузки.

плагин сборки от Maven выглядит очевидным кандидатом на решение #1. Поэтому я добавил в свой pom.xml следующее:

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <archive>
      <manifest>
        <mainClass>io.gatling.app.Gatling</mainClass>
      </manifest>
    </archive>
    <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
  </configuration>
</plugin>

В этой конфигурации запуск файла JAR, созданного с помощью mvn clean package assembly:single, приводит к следующему NoSuchFileException:

$ java -jar target/myapp-0.1-SNAPSHOT-jar-with-dependencies.jar
Exception in thread "main" java.nio.file.NoSuchFileException: ./target/test-classes
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:407)
at java.nio.file.Files.newDirectoryStream(Files.java:457)
at io.gatling.core.util.PathHelper$RichPath$.deepListAux$1(PathHelper.scala:99)
at io.gatling.core.util.PathHelper$RichPath$.deepList$extension(PathHelper.scala:105)
at io.gatling.core.util.PathHelper$RichPath$.deepFiles$extension(PathHelper.scala)
at io.gatling.app.classloader.SimulationClassLoader.simulationClasses(SimulationClassLoader.scala:55)
at io.gatling.app.Gatling.loadSimulations(Gatling.scala:92)
at io.gatling.app.Gatling.start(Gatling.scala:70)
at io.gatling.app.Gatling$.fromArgs(Gatling.scala:59)
at io.gatling.app.Gatling$.main(Gatling.scala:44)
at io.gatling.app.Gatling.main(Gatling.scala)
  • Это то, как я должен упаковать свой проект Gatling на основе Maven?
  • Не неправильно ли я настроил подключаемый модуль Gatling Maven во время создания JAR-файла?

Обновление 1:

Создание каталога target/test-classes позволяет обойти исключение NoSuchFileException. Однако затем гатлинг не находит ни одной из моих симуляций. Ни один из файлов *.scala не был добавлен в JAR, сгенерированный подключаемым модулем сборки.


person Ingo    schedule 08.01.2015    source источник
comment
У меня похожая проблема stackoverflow.com/q/27893423/842860. Что я сделал, так это переместил все файлы в основную папку. Но потом у меня появились другие проблемы.   -  person stackoverflower    schedule 30.01.2015