为 Gatling 负载测试构建可执行 JAR
我是Gatling(2.1.2)的新手,想做一个小型原型项目向我的同事展示。
根据快速入门页面,有几种方法可以使用Gatling运行模拟:
- 将Gatling捆绑包解压缩到一个文件夹中,并将我的模拟文件放入用户文件/模拟文件夹中。bin/gatling.sh将编译并运行模拟文件。
- 使用 maven 插件执行模拟。
gatling-maven-plugin
- 使用 创建一个项目,然后运行 Engine 类。
gatling-highcharts-maven-archetype
我发现了这些问题
对于 1,很难为模拟类添加依赖项。我必须弄清楚需要什么jar,并将它们放到lib文件夹中。
对于 2,它需要安装 maven。
对于 3,它仅从 IDE 运行
我只想要一个简单的可执行JAR文件,将所有依赖项捆绑在一起(我的模拟,Gatling和第三方),并从任何机器(如EC2实例)运行它。
有没有办法做到这一点?
更新 1:
我尝试了方法3,但是将所有项目文件从文件夹移动到,并用于构建具有依赖项的jar。当我尝试运行该文件时,我得到以下错误:test
main
maven-assembly-plugin
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
我想这与Gatling配置有关,但不知道出了什么问题。