Ich bin neu bei Gatling (2.1.2) und möchte ein kleines Prototyp-Projekt zu meinen Kollegen zeigen.Build ausführbare JAR für Gatling Belastungstest
Nach der quick start Seite, gibt es mehr Möglichkeiten, wie ich kann eine Simulation mit Gatling laufen:
- dekomprimieren der Gatling einen Ordner bündelt in und meine Simulation Drop von Dateien in Anwender-Dateien/Ordner Simulationen. bin/gatling.sh kompiliert und führt die Simulationsdateien aus.
- Verwenden Sie das
gatling-maven-plugin
Maven-Plugin, um die Simulation auszuführen. - Erstellen Sie ein Projekt mit
gatling-highcharts-maven-archetype
, und führen Sie die Engine-Klasse.
und ich fand diese Probleme
Für 1, ist es schwer, Abhängigkeiten für die Simulation Klassen hinzuzufügen. Ich muss herausfinden, was die Gläser benötigt werden und sie in den Lib-Ordner fallen lassen.
Für 2 muss Maven installiert werden.
Für 3, es läuft nur von einem IDE
Ich möchte nur eine einfache ausführbare JAR-Datei mit allen Abhängigkeiten zusammenzugebündelt (meine Simulation, Gatling und Dritte), und es von jedem Rechner laufen (wie EC2 Instanzen).
Gibt es einen Weg, dies zu erreichen?
Update 1:
habe ich versucht, Verfahren 3, aber alle Projektdateien aus test
Ordnern main
bewegt und verwenden maven-assembly-plugin
ein Glas mit Abhängigkeiten zu bauen. Als ich versuchte, die Datei auszuführen, bekam ich folgende Fehlermeldung:
Exception in thread "main" java.lang.ExceptionInInitializerError
at Engine$.delayedEndpoint$Engine$1(Engine.scala:7)
at Engine$delayedInit$body.apply(Engine.scala:4)
at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main$1.apply(App.scala:76)
at scala.App$$anonfun$main$1.apply(App.scala:76)
at scala.collection.immutable.List.foreach(List.scala:381)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
at scala.App$class.main(App.scala:76)
at Engine$.main(Engine.scala:4)
at Engine.main(Engine.scala)
Caused by: java.nio.file.FileSystemNotFoundException
at com.sun.nio.zipfs.ZipFileSystemProvider.getFileSystem(ZipFileSystemProvider.java:171)
at com.sun.nio.zipfs.ZipFileSystemProvider.getPath(ZipFileSystemProvider.java:157)
at java.nio.file.Paths.get(Paths.java:143)
at io.gatling.core.util.PathHelper$.uri2path(PathHelper.scala:32)
at IDEPathHelper$.<init>(IDEPathHelper.scala:7)
at IDEPathHelper$.<clinit>(IDEPathHelper.scala)
... 11 more
Ich denke, das ist etwas, mit Gatling-Konfiguration zu tun, aber nicht wissen, was schief gegangen ist.
Wenn Sie ein PoC erstellen möchten, warum bleiben Sie nicht zuerst bei den offiziell unterstützten Bereitstellungsstrategien? –
@StephaneLandelle, ich habe tatsächlich die offizielle Strategie ausprobiert, und so musste ich alle Gläser in den lib-Ordner fallen lassen. Ich möchte nur wissen, ob der Aufbau einer lauffähigen JAR möglich ist oder nicht und warum. – stackoverflower
@Philippe, können Sie möglicherweise Methode 1 in meiner Frage verwenden. Was Sie tun müssen, ist die Zip-Datei des Gatling-Bundles zu entpacken und Ihre Szenario-Scala-Datei in den Ordner $ {GATLING}/user-files/simulations einzufügen. Jedes abhängige Jar sollte in $ {GATLING}/lib gehen (Sie müssen den Ordner erstellen, wenn er nicht im Bundle enthalten ist). Dann können Sie Gatling mit $ {GATLING} /bin/gatlin.sh ausführen. Die [Datei] (https://github.com/gatling/gatling/blob/master/gatling-bundle/src/universal/bin/gatling.sh) sagt Ihnen alles, wie es funktioniert. – stackoverflower