2017-10-16 125 views
1

我正在嘗試編寫一個模擬程序,我希望能夠運行模擬程序。 嘗試$ mvn gatling時執行時出現錯誤。gatling負載測試期間編譯錯誤

我POM具有以下依存關係:

<dependency> 
    <groupId>io.gatling</groupId> 
    <artifactId>gatling-charts</artifactId> 
    <version>2.2.5</version> 
</dependency> 
<dependency> 
    <groupId>io.gatling</groupId> 
    <artifactId>gatling-core</artifactId> 
    <version>2.2.5</version> 
</dependency> 

及以下插件:

<build> 
    <plugins> 
     <plugin> 
      <groupId>net.alchim31.maven</groupId> 
      <artifactId>scala-maven-plugin</artifactId> 
      <version>3.3.1</version> 
      <configuration> 
       <scalaVersion>2.12.3</scalaVersion> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>io.gatling</groupId> 
      <artifactId>gatling-maven-plugin</artifactId> 
      <version>2.2.4</version> 
      <executions> 
       <execution> 
        <id>performanceTests</id> 
        <goals> 
         <goal>execute</goal> 
        </goals> 
        <configuration> 
         <simulationClass>simulations.SimulationClass</simulationClass> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

這是我碰到的錯誤:

12:50:36.313 [main][WARN ][ZincCompiler.scala:141] i.g.c.ZincCompiler$ - 
Pruning sources from previous analysis, due to incompatible CompileSetup. 
java.lang.ClassNotFoundException: io.gatling.app.Gatling 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at io.gatling.mojo.MainWithArgsInFile.runMain(MainWithArgsInFile.java:42) 
    at io.gatling.mojo.MainWithArgsInFile.main(MainWithArgsInFile.java:33) 

包括依賴性:

<dependency> 
    <groupId>io.gatling</groupId> 
    <artifactId>gatling-app</artifactId> 
    <version>2.2.5</version> 
</dependency> 

但現在我得到一個新的錯誤:

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 com.github.mnogu.gatling.mqtt.protocol.MqttProtocolOptionPart.<init>(MqttProtocol.scala:124) 
at com.github.mnogu.gatling.mqtt.protocol.MqttProtocol$.apply(MqttProtocol.scala:24) 
at com.github.mnogu.gatling.mqtt.protocol.MqttProtocolBuilder$.apply(MqttProtocolBuilder.scala:13) 
at com.github.mnogu.gatling.mqtt.Predef$.mqtt(Predef.scala:9) 
at simulations.SimulationClass.<init>(SimulationClass.scala:10) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
at java.lang.Class.newInstance(Class.java:442) 
at io.gatling.app.Runner.run0(Runner.scala:79) 
at io.gatling.app.Runner.run(Runner.scala:64) 
at io.gatling.app.Gatling$.start(Gatling.scala:59) 
at io.gatling.app.Gatling$.fromArgs(Gatling.scala:43) 
at io.gatling.app.Gatling$.main(Gatling.scala:35) 
at io.gatling.app.Gatling.main(Gatling.scala) 

...

任何有關這個問題的線索將有很大的幫助。

謝謝

回答

1

你的錯誤說你缺少以下依賴,

<!-- https://mvnrepository.com/artifact/io.gatling/gatling-app --> 
<dependency> 
    <groupId>io.gatling</groupId> 
    <artifactId>gatling-app</artifactId> 
    <version>2.2.5</version> 
</dependency> 

更新

你的第二個錯誤,主要是因爲你的代碼是指在運行時的jar文件與編譯時使用的jar文件不同。因此,確保在編譯和運行時使用相同的jar。爲此,您可以刪除相關的jar文件,maven清理您的項目並重新編譯並運行該程序。

+0

包含的依賴,現在我看到另一個錯誤。 – aria

+0

最新的錯誤是什麼?你能更新嗎? –

+0

更新了帖子中的錯誤。 – aria

1

看起來像我使用的外部jar只符合gatling核心2.2.3。將gatling核心版本恢復到2.2.3和scala版本到2.11.8解決了這個問題。

這裏是我的POM現在的樣子:

<dependency> 
     <groupId>io.gatling.highcharts</groupId> 
     <artifactId>gatling-charts-highcharts</artifactId> 
     <version>2.2.3</version> 
    </dependency> 
    <dependency> 
     <groupId>io.gatling</groupId> 
     <artifactId>gatling-core</artifactId> 
     <version>2.2.3</version> 
    </dependency> 
    <dependency> 
     <groupId>io.gatling</groupId> 
     <artifactId>gatling-app</artifactId> 
     <version>2.2.3</version> 
    </dependency> 

<plugins> 
     <plugin> 
      <groupId>net.alchim31.maven</groupId> 
      <artifactId>scala-maven-plugin</artifactId> 
      <version>3.3.1</version> 
      <configuration> 
       <scalaVersion>2.11.8</scalaVersion> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>io.gatling</groupId> 
      <artifactId>gatling-maven-plugin</artifactId> 
      <version>2.2.3</version> 
      <executions> 
       <execution> 
        <id>performanceTests</id> 
        <goals> 
         <goal>execute</goal> 
        </goals> 
        <configuration> 
         <simulationClass>simulations.SimulationClass</simulationClass> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins>