从JMeter Plugins执行JMeter时是否可以使用jmeter-maven-plugin?
更新
我已经尝试根据Ardesco的有用答案将jmeter-plugins
依赖项添加到插件定义中,但我得到了无数ClassNotFoundException
个。 似乎就像Maven在执行JMeter时没有将jmeter-plugin
的传递依赖项放在类路径上。有什么想法吗?
答案 0 :(得分:9)
虽然这个答案已被接受,但它仅适用于2.X之前的版本。 但对于高于2.X的版本,请参阅此answer。
是的,您可以通过向插件添加依赖项来添加所需的任何库,任何显式定义的依赖项都将被复制到您的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版本之前,该功能已被破坏。
答案 1 :(得分:1)
使用版本2.6.0或plugin
的上方并添加:
<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插件的完整概述,请参阅本教程:
答案 2 :(得分:0)
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>
您可以检查 ${project-root}/target/long-folder-name/jmeter/lib/ 并确保您的 jar 存在于那里。对我来说,我依赖 Urirest 来发帖以获取令牌。