Maven 使用lazerycode jmeter插件运行.jmx命令行时出现NoClassDefFoundError
我正在使用来执行jmeter测试 当我尝试从UI运行我的jmx文件时,它运行得非常好 但是,当我尝试使用mvn时Maven 使用lazerycode jmeter插件运行.jmx命令行时出现NoClassDefFoundError,maven,jmeter,performance-testing,jmeter-plugins,jmeter-maven-plugin,Maven,Jmeter,Performance Testing,Jmeter Plugins,Jmeter Maven Plugin,我正在使用来执行jmeter测试 当我尝试从UI运行我的jmx文件时,它运行得非常好 但是,当我尝试使用mvn时 mvn clean install or mvn verify 它开始执行,但在我使用JSON提取器从响应中提取一些值时失败。下面是我得到的错误 [INFO] Uncaught Exception java.lang.NoClassDefFoundError: com/jayway/jsonpath/internal/JsonReader. See log file for det
mvn clean install or mvn verify
它开始执行,但在我使用JSON提取器从响应中提取一些值时失败。下面是我得到的错误
[INFO] Uncaught Exception java.lang.NoClassDefFoundError: com/jayway/jsonpath/internal/JsonReader. See log file for details.
这是我正在使用的POM:
<build>
<plugins>
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>2.6.0</version>
<configuration>
<testResultsTimestamp>false</testResultsTimestamp>
<propertiesUser>
<!-- Some user properties here -->
</propertiesUser>
<jmeterExtensions>
<artifact>kg.apc:jmeter-plugins-manager:0.19</artifact>
<artifact>Kg.apc:jmeter-plugins-extras-libs:1.3.1</artifact>
<artifact>kg.apc:jmeter-plugins-json:jar:2.3</artifact>
</jmeterExtensions>
<!-- The plugin uses some broken dependencies
An alternative is to set this to true and use excludedArtifacts, see below
-->
<downloadExtensionDependencies>false</downloadExtensionDependencies>
</configuration>
<executions>
<execution>
<id>jmeter-tests</id>
<phase>verify</phase>
<goals>
<goal>jmeter</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>kg.apc</groupId>
<artifactId>jmeter-plugins-extras-libs</artifactId>
<version>1.3.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
以下是jmeter日志文件中的完整日志:
2018-02-11 18:44:20835信息o.a.j.t.JMeterThread:螺纹加工:
螺纹组1-1 2018-02-11 18:44:20857错误o.a.j.JMeter:未钻孔
异常:java.lang.NoClassDefFoundError:
com/jayway/jsonpath/internal/JsonReader位于
com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.jsonpathextractor.processJSONPathExtractor.java:102
~[jmeter-plugins-extras-libs-1.3.1.jar:?]at
org.apache.jmeter.threads.JMeterThread.runPostProcessorsJMeterThread.java:833
~[ApacheJMeter_core-3.3.jar:3.3 r1808647]at
org.apache.jmeter.threads.JMeterThread.executeSamplePackageJMeterThread.java:524
~[ApacheJMeter_core-3.3.jar:3.3 r1808647]at
org.apache.jmeter.threads.JMeterThread.processSamplerJMeterThread.java:424
~[ApacheJMeter_core-3.3.jar:3.3 r1808647]at
org.apache.jmeter.threads.JMeterThread.runJMeterThread.java:255
~[ApacheJMeter_core-3.3.jar:3.3 r1808647]at
java.lang.Thread.runThread.java:748[?:1.8.0_151]由以下原因引起:
java.lang.ClassNotFoundException:
com.jayway.jsonpath.internal.JsonReader位于
java.net.URLClassLoader.findClassURLClassLoader.java:381
约[?:1.8.0_151]at
java.lang.ClassLoader.LoadClassLoader.java:424~[?:1.8.0_151]
位于java.lang.ClassLoader.LoadClassLoader.java:357
~[?:1.8.0_151] ... 还有6个
如前所述,我在pom.xml中添加了多个库,但问题没有得到解决
建议使用最新版本的Maven插件和JMeter插件,因此我建议修改pom.xml,如下所示:
如果您仍然遇到问题,请使用-X键运行测试以启用完整调试输出并使用它更新问题,您可能还需要提供.jmx脚本
更多信息:
编辑:
谢谢德米特里,这真的很有帮助。在我的例子中,我不得不在pom.xml中添加额外的库来解决这个错误
<artifact>com.jayway.jsonpath:json-path:2.2.0</artifact>
我之所以编辑此答案,是因为更多时候,人们不会通过查看评论来获得答案。感谢Dmitri提供的详细答案。我的问题是,它希望下载另一个库。我在pom中添加了com.jayway.jsonpath:json-path:2.2.0行,它开始正常工作。在我接受你的答案之前,我还有一个问题,如果我们使用lazerycode,我们如何运行单个测试?mvn verify似乎运行src文件夹中的所有测试。
mvn -U clean verify
<artifact>com.jayway.jsonpath:json-path:2.2.0</artifact>