Skip to content

Remote Server Configuration

Mark Collin edited this page Jan 18, 2014 · 9 revisions

#Remote Start And Stop Of Servers Via <remoteConfig>

Setting the <startServersBeforeTests> option will result in a --runremote command being send to JMeter which will start up any remote servers you have defined in your jmeter.properties when your first test starts.

Setting the <stopServersAfterTests> option will result in a --remoteexit command being send to JMeter which will shut down all remote servers defined in jmeter.properties after your last test has been run.

<startServersBeforeTests> and <stopServersAfterTests> can be used independantly so that it is possible to use another process to start and stop servers if required.

+---+
<project>
    [...]
        <build>
            <plugins>
                <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>
                                <remoteConfig>
                                    <startServersBeforeTests>true</startServersBeforeTests>
                                    <stopServersAfterTests>true</stopServersAfterTests>
                                </remoteConfig>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    [...]
</project>
+---+

You can configure the plugin to perform a remote start and stop for each individual test by setting the <startAndStopServersForEachTest> variable to true. If you set this along with <startServersBeforeTests> and <stopServersAfterTests> the <startServersBeforeTests> and <stopServersAfterTests> settings will be ignored.

+---+
<project>
    [...]
        <build>
            <plugins>
                <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>
                                <remoteConfig>
                                    <startAndStopServersForEachTest>false</startAndStopServersForEachTest>
                                </remoteConfig>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    [...]
</project>
+---+

Instead of starting all remote servers, you can specify which ones to start by using the <serverList> option, this will accept a comma separated list of servers for JMeter to start (these must be defined in your jmeter.properties, see the remote testing page in the JMeter manual).

+---+
<project>
    [...]
        <build>
            <plugins>
                <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>
                                <remoteConfig>
                                    <startServersBeforeTests>true</startServersBeforeTests>
                                    <serverList>server1,server2</serverList>
                                    <stopServersAfterTests>true</stopServersAfterTests>
                                </remoteConfig>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    [...]
</project>
+---+