当我运行“ mvn clean gatling:test -Dgatling.simulationClass = package.SimpleSim”时,出现以下错误:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at io.gatling.mojo.MainWithArgsInFile.runMain(MainWithArgsInFile.java:50)
at io.gatling.mojo.MainWithArgsInFile.main(MainWithArgsInFile.java:33)
Caused by: java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V
at io.gatling.core.cli.CommandLineConstant.<init>(CommandLineConstant.scala:19)
at io.gatling.app.cli.CommandLineConstants$.<init>(CommandLineConstants.scala:22)
at io.gatling.app.cli.CommandLineConstants$.<clinit>(CommandLineConstants.scala)
at io.gatling.app.cli.ArgsParser$$anon$1.<init>(ArgsParser.scala:30)
at io.gatling.app.cli.ArgsParser.<init>(ArgsParser.scala:28)
at io.gatling.app.Gatling$.fromArgs(Gatling.scala:46)
at io.gatling.app.Gatling$.main(Gatling.scala:39)
at io.gatling.app.Gatling.main(Gatling.scala)
我尝试除去仅保留Gatling Highchart和Gatling插件的许多依赖项。它仍然会引发相同的错误。
有趣的是,我从一个正在运行的项目中复制了许多代码,而该项目现在仍在正常运行。
我不确定为什么在新项目中会发生这种情况...
pom:
<parent>
<artifactId>abc-pom</artifactId>
<groupId>com.abc.def</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<gatling.version>3.0.3</gatling.version>
<gatling-plugin.version>3.0.2</gatling-plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>io.gatling.highcharts</groupId>
<artifactId>gatling-charts-highcharts</artifactId>
<version>${gatling.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>src/main</sourceDirectory>
<testSourceDirectory>src/test</testSourceDirectory>
<plugins>
<plugin>
<groupId>io.gatling</groupId>
<artifactId>gatling-maven-plugin</artifactId>
<version>${gatling-plugin.version}</version>
<executions>
<execution>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<configFolder>${project.basedir}/src/test/resources/gatling_conf</configFolder>
<runMultipleSimulations>true</runMultipleSimulations>
<includes>
<simulationClass>package.SimpleSim</simulationClass>
</includes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
脚本:
package package.scalability_test
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
class SimpleSim extends Simulation {
val httpProtocolBuilder = http.baseUrl("http://www.google.com")
val scenarioBuilder = scenario("Get").exec(http("Get_Request")
.get("/"))
setUp(
scenarioBuilder.inject(constantUsersPerSec(1) during(60 seconds))
).protocols(httpProtocolBuilder)
}
答案 0 :(得分:0)
该问题实际上是由于circular_buffer<std::array<float, 4>>
标签引起的。这是一个较大项目中的一个项目。不知何故,继承父pom会引起一些冲突,从而导致此问题。
我的解决方案是删除<parent></parent>
标签。但是,正确的解决方案可能是真正找出导致冲突的依赖关系。
答案 1 :(得分:0)
首先检查您的类路径 mvn dependency:tree
中的所有 Scala 版本,然后使用您的 Gatling 版本覆盖兼容的 Scala 版本