从Maven执行时的JMeter插件

时间:2013-08-21 15:38:48

标签: maven jmeter jmeter-plugins jmeter-maven-plugin

JMeter Plugins执行JMeter时是否可以使用jmeter-maven-plugin

更新

我已经尝试根据Ardesco的有用答案将jmeter-plugins依赖项添加到插件定义中,但我得到了无数ClassNotFoundException个。 似乎就像Maven在执行JMeter时没有将jmeter-plugin的传递依赖项放在类路径上。有什么想法吗?

3 个答案:

答案 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 来发帖以获取令牌。