Monday 24 December 2018

Pass Parameters from JMeter Maven Plugin

To pass parameters from Maven project using JMeter Maven plugin, please make sure you have Maven project created and  udated JMX placed at src/test/jmeter source folder. If not please first setup your project Running JMeter Script from Eclipse in Maven project

Parameterize JMeter Script


Update JMeter Script


  • Please make sure that you have created variables in the script as shown in below example.This example uses Number of Threads, Ramp-Up Period and Duration as variables for reference. Default value is  set as 1 for each variable Number of Threads, Ramp-Up Period and Duration.

Import JMeter Script


  • Import the Parameterized script (.jmx) in eclipse under src/test/jmeter



Update POM.xml


  • Add Parameters Configuration in POM.xml

<configuration>
    <testResultsTimestamp>false</testResultsTimestamp>
    <propertiesUser>
        <threads>${threadCount}</threads>
        <rampup>${rampupTime}</rampup>
        <duration>${durationSecond}</duration>
    </propertiesUser>
</configuration>
  

  • Complete POM.xml will look like this

<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>example</groupId>
    <artifactId>example</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>example</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>2.1.0</version>
                <configuration>
                    <testResultsTimestamp>false</testResultsTimestamp>
                    <propertiesUser>
                        <threads>${threadCount}</threads>
                        <rampup>${rampupTime}</rampup>
                        <duration>${durationSecond}</duration>
                    </propertiesUser>
                </configuration>
                <executions>
                    <execution>
                        <id>jmeter-tests</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project> 

Script Execution


  • Pass values as command line parameters 

mvn verify -DthreadCount=20 -DrampupTime=5 -DdurationSecond=60
  


3 comments:

  1. how can i pass paramters for different test cases through pom like user paramters have been set in jmeter gui mode, how can i pass them through mvn script?

    ReplyDelete
    Replies
    1. Please update the question with answer if you are able to pass parameters from maven script like jmeter in gui mode

      Delete
  2. I tried this way but it didn't work.what could be the issue

    ReplyDelete