如何在非GUI模式下将jar添加到JMeter的类路径

时间:2014-01-22 15:21:33

标签: java classpath jmeter benchmarking

我在JMeter GUI中创建了一个使用“Java Request Sampler”的测试计划。

我将包含实现的jarfile添加到我的采样器到我的jmeter安装的/ lib / ext /。

当我在GUI模式下运行时,这一切都正常。

然而,当我使用

切换到非gui模式时
./jmeter -n -t Test\ Plan.jmx 

我明白了:

com.mycompany.JavaSamplerTest java.lang.ClassNotFoundException

2014/01/23 15:25:25 ERROR - jmeter.protocol.java.sampler.JavaSampler: StandardJMeterEngine@5efbfd6e-Java Request    Exception initialising: com.mycompany.JavaSamplerTest java.lang.ClassNotFoundException: com.mycompany.JavaSamplerTest
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at org.apache.jmeter.protocol.java.sampler.JavaSampler.initClass(JavaSampler.java:117)
at org.apache.jmeter.protocol.java.sampler.JavaSampler.testStarted(JavaSampler.java:263)
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:214)
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:336)
at java.lang.Thread.run(Thread.java:744)

我不清楚为什么使用-n -t时这种行为会有所不同。有人有解决方案吗?

如果这是一个有用的信息,我使用openjdk在Linux上工作。

5 个答案:

答案 0 :(得分:1)

将jar放入jmeter / lib文件夹。

lib / ext用于真正的插件。

答案 1 :(得分:1)

根据How do I run JMeter in non-gui mode文章,您可以使用-J键为JMeter提供其他类路径元素位置,如下所示:

./jmeter -Juser.classpath=/some/folder/your/extension.jar -n -t ${path_to_your_script} -l ${path_to_results}

答案 2 :(得分:0)

在jmeter插件中添加它作为依赖项:

<div id="update">
</div>

<form>
  <input name="input" type="email" required />
  <input type="submit" />
</form>

答案 3 :(得分:0)

下面是我如何设置maven pom的插件

<plugin>
   <groupId>com.lazerycode.jmeter</groupId>
   <artifactId>jmeter-maven-plugin</artifactId>
   <version>2.7.0</version>
       <executions>
           <execution>
               <id>jmeter-tests</id>
               <goals>
                   <goal>jmeter</goal>
               </goals>
               </execution>
       </executions>
       <configuration>
           <testPlanLibraries>
               <artifact>org.apache.commons:commons-lang3:3.0</artifact>
           </testPlanLibraries>
           <propertiesSystem>
               <user>${username}</user>
           </propertiesSystem>
       </configuration>
</plugin>

答案 4 :(得分:0)

我今天在 linux 机器上使用 jmeter 5.4 遇到了同样的问题。 感谢我的同事,我们确定了根本原因。

在 jmeter.properties 中,我们使用以下行来扩展类路径库。 user.classpath=../lib;../lib/ext

但是在 linux 机器上,这一行必须是这样的: user.classpath=../lib:../lib/ext

因此使用 : 而不是 ; 在我们的例子中,这符合我们的问题。