在使用JMeter插件执行jmeter-maven-plugin时,是否可以使用JMeter插件?
更新
按照Ardesco的有用答案,我尝试将jmeter-plugins
依赖项添加到插件定义中,但是我遇到了一堆ClassNotFoundException
。看起来Maven在执行JMeter时没有将jmeter-plugin
的传递依赖项放入类路径中。有什么想法吗?
在使用JMeter插件执行jmeter-maven-plugin时,是否可以使用JMeter插件?
更新
按照Ardesco的有用答案,我尝试将jmeter-plugins
依赖项添加到插件定义中,但是我遇到了一堆ClassNotFoundException
。看起来Maven在执行JMeter时没有将jmeter-plugin
的传递依赖项放入类路径中。有什么想法吗?
尽管此答案被接受,但仅适用于2.X版本之前。但对于高于2.X版本,请参阅此答案。
是的,您可以通过向插件添加依赖项来添加所需的任何库,任何明确定义的依赖项都将复制到您的jmeter/lib目录中。
如果依赖关系是JMeter插件,则可以在配置中指定它,然后该依赖关系将被复制到您的meter/lib/ext目录中:
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>1.9.0</version>
<executions>
<execution>
<id>jmeter-tests</id>
<phase>verify</phase>
<goals>
<goal>jmeter</goal>
</goals>
<configuration>
<jmeterPlugins>
<plugin>
<groupId>kg.apc</groupId>
<artifactId>jmeter-plugins</artifactId>
</plugin>
</jmeterPlugins>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>kg.apc</groupId>
<artifactId>jmeter-plugins</artifactId>
<version>1.1.3</version>
</dependency>
</dependencies>
</plugin>
这个功能在1.9.0版本之前是不可用的。
java.lang.ClassNotFoundException:org.apache.jorphan.util.JMeterException
。 - DeejUK<configuration>
<jmeterExtensions>
<artifacts>kg.apc:jmeter-plugins-casutg:2.4</artifacts>
</jmeterExtensions>
<excludedArtifacts>
<exclusion>commons-pool2:commons-pool2</exclusion>
<exclusion>commons-math3:commons-math3</exclusion>
</excludedArtifacts>
...
</configuration>
查看此教程以全面了解使用Maven插件:
jmeter 3.4.0
如果您有任何外部依赖项,请使用以下依赖项。
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>3.4.0</version>
<configuration>
<!--testPlanLibraries - if you have any dependency with external jars pls add artifact here-->
<!-- beanshell preprocessor you can write java so this is useful-->
<testPlanLibraries>
<artifact>com.konghq:unirest-java:3.11.11</artifact>
</testPlanLibraries>
<testFilesDirectory>src/test/jmeter</testFilesDirectory>
<suppressJMeterOutput>false</suppressJMeterOutput>
<appendResultsTimestamp>true</appendResultsTimestamp>
<downloadJMeterDependencies>true</downloadJMeterDependencies>
<downloadLibraryDependencies>true</downloadLibraryDependencies>
<downloadExtensionDependencies>true</downloadExtensionDependencies>
<downloadOptionalDependencies>true</downloadOptionalDependencies>
<jMeterProcessJVMSettings>
<!-- for setting any arguments please use this section -->
<arguments>
<argument>-Dhttps.use.cached.ssl.context=false</argument>
<argument>-Djavax.net.ssl.keyStoreType=jks</argument>
<argument>-Djavax.net.ssl.keyStore=${clientCertKeystorePath}</argument>
<argument>-Djavax.net.ssl.keyStorePassword=${keyStorePassword}</argument>
</arguments>
</jMeterProcessJVMSettings>
</configuration>
<executions>
<execution>
<id>configuration</id>
<goals>
<goal>configure</goal>
</goals>
</execution>
<!-- Run JMeter tests -->
<execution>
<id>jmeter-tests</id>
<goals>
<goal>jmeter</goal>
</goals>
</execution>
<!-- Fail build on errors in test -->
<execution>
<id>jmeter-check-results</id>
<goals>
<goal>results</goal>
</goals>
</execution>
</executions>
</plugin>