从jmeter-maven-plugin执行 JMeter 时是否可以使用JMeter插件?
更新
我已经尝试jmeter-plugins
根据 Ardesco 的有用答案将依赖项添加到插件定义中,但我得到了无数的ClassNotFoundException
s. 执行 JMeter 时, Maven 似乎没有将传递依赖jmeter-plugin
项放在类路径上。有任何想法吗?
从jmeter-maven-plugin执行 JMeter 时是否可以使用JMeter插件?
更新
我已经尝试jmeter-plugins
根据 Ardesco 的有用答案将依赖项添加到插件定义中,但我得到了无数的ClassNotFoundException
s. 执行 JMeter 时, Maven 似乎没有将传递依赖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 版之前被破坏。
使用 2.6.0 或更高版本的插件
并添加:
<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>
您可以检查${project-root}/target/long-folder-name/jmeter/lib/并确保您的 jar 存在于那里。对我来说,我依赖于Urirest发布帖子以获取令牌。