Note |
---|
Please note: the JMeter Maven plugin is a 3rd party product; it is not part of the Apache JMeter project |
JMeter Maven Plugin
This is a Maven 3 plugin that allows you to run JMeter tests as part of the build.
Install the Plugin
This plugin is available from the maven central repository, as long as you have a working install of maven you only need to create a valid pom.xml that references this plugin.
Basic Configuration
- Create a src/test/jmeter directory, and place your JMeter load tests there.
Add the plugin to your pom.xml
No Format +---+ <project> [...] <build> <pluginManagement> <plugins> <plugin> <groupId>com.lazerycode.jmeter</groupId> <artifactId>jmeter-maven-plugin</artifactId> <version>2.8.5</version> <executions> <execution> <id>jmeter-tests</id>
Wiki Markup |
---|
This is a Maven 2 plugin that allows you to run JMeter tests as part of the build. I am using this with \[http://jchav.blogspot.com/ JChav\] and \[http://maven.apache.org/continuum/ Continuum\] to automate the running of a suite of JMeter load tests, and publish the results to a web page. Sorry this is not more polished. It could use some TLC to make it more user-friendly to actually plug it into a project. I just thought I'd stick the code out there as quickly as possible and see if anyone is interested in it before I went any further with it. |
To build and use the plugin:BR BR Remote Repository
- Create a locally hosted remote Maven repository, if you don't already have one.
- Configure your pom to utilize this remote repository.
Deploy JMeter Jar
Wiki Markup |
---|
Deploy the attached \[^jmeter-2.2.jar JMeter jar\] and \[^jmeter-2.2.pom POM\] to your remote repository (note that you do not need to have JMeter separately installed). For example: |
No Format |
---|
mvn deploy:deploy-file -DgroupId=org.apache.jmeter -DartifactId=jmeter -Dversion=2.2 -Dpackaging=jar -Dfile=c://downloads//jmeter//jmeterPlugin/jmeter-2.2.jar -DpomFile=c://downloads//jmeter//jmeterPlugin/jmeter-2.2.pom -Durl=file:////myRepoHost.com/FileShare/ProductDevelopment/ApplicationDevelopment/maven2repository -DrepositoryId=my-repo
|
Deploy Dependencies
- Add the jar files that are referenced in the JMeter POM to your local repository, via the deploy plugin, if they are not on ibiblio.
Install the Plugin
...
Wiki Markup |
---|
Download the attached \[^maven-jmeter-plugin-src.tar.gz Maven JMeter Plugin source tarball\]. Untar it. |
...
No Format |
---|
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>maven-jmeter-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency> |
Configure the Plugin
- Create a src/test/jmeter directory, and place your JMeter load tests there.
- Create a jmeter.properties file in src/test/jmeter. It's fine to just copy the default properties file from the JMeter install if you want.
- Optionally configure includes and excludes in your pom.xml for which tests to run. If you don't, it will just run **/*.jmx. For example:
No Format <build> <plugins> <plugin> <groupId>org.apache.jmeter</groupId> <artifactId>maven-jmeter-plugin</artifactId> <configuration> <includes><goals> <include>myTest1.jmx</include> <include>myTest2.jmx<<goal>jmeter</include>goal> </includes> </configuration> </plugin> </plugins>goals> </build>
- The default reports directory is 'jmeter-reports' which is created in the base folder ( usually where maven is run from )
- Changing the reports directory : Add a reportDir setting to the plugin configuration. for example:
No Format <build> <plugins> <plugin> <groupId>org.apache.jmeter</groupId></execution> <artifactId>maven-jmeter-plugin</artifactId> <configuration> <execution> <includes> <include>myTest1.jmx</include> <id>jmeter-check-results</id> <include>myTest2.jmx</include> </includes><goals> <reportDir>target/jmeter-reports</reportDir> </configuration> </plugin> <<goal>results</plugins>goal> </build>
Executing the Plugin
- Run "mvn org.apache.jmeter:maven-jmeter-plugin:jmeter" to run the tests.
Change to the plugin - by Peter Andersen / not committed!
(If this can be used - please commit this into the codebase)
Using jmeter from maven-jmeter-plugin as suggested on:
http://jlorenzen.blogspot.com/2008_03_01_archive.html
The problem is that maven hang after the test has ended.
Some debugging shows that the maven-jmeter-plugin call to jmeter course jmeter to leak threads, I have done the following change to the maven-jmeter-plugin that fixes the problem, using checkForEndOfTest method below.
Hope someone can use this to improve the plugin.
Code changes to org.apache.jmeter.JMeterMojo.java:
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
</goals> </execution> </executions> </plugin> </plugins> </pluginManagement> </build> [...] </project> +---+
Executing the Plugin
- Run "mvn clean verify" to run the tests (Best practice would be to assign the JMeter tests to a specific profile so that they only run when invoking that profile).
External Links
The source code for this plugin can be found at https://github.com/jmeter-maven-plugin/jmeter-maven-plugin
The official website is available at https://jmeter.lazerycode.com
The github wiki has more detailed configuration information and is available at https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki
Tutorial