Obtaining and installing the performance test suite

As a registered user of Corda Enterprise, you can get the performance test suite as a zip file from the same location where the Corda Enterprise artifacts are available. Look for a file called jmeter-corda-<version>-testsuite.zip.

The performance test suite is shipped as a .zip file containing the following files:

  • jmeter-corda-<version>-capsule.jar: A fat JAR file that contains the wrapped JMeter code to drive performance tests as well as all the required dependencies to run the JMeter application. It is referred to as jmeter-corda.jar throughout on this and other related pages in the Corda documentation.
  • corda-ptflows-<version>.jar: A performance test CorDapp used by the built-in samplers and the included sample test plans. If you intend to use these test plans, you should deploy this CorDapp to any node of the system under test. The CorDapp itself is called com.r3.corda.enterprise.perftestcordapp.
  • settlement-perftest-cordapp-<version>.jar: A performance test CorDapp used by the built-in samplers and the included sample test plans. If you intend to use these test plans, you should deploy this CorDapp to any node of the system under test. For more information, see introduction.
  • A number of test plan .jmx files. For more information, see included testplans.
  • jmeter.properties: An example of the jmeter.properties file used to configure JMeter. If you need a custom configuration, you should base it on this file.
  • sample-server-rmi.config: An annotated sample for the server RMI mapping required to use remote JMeter over SSH tunnels. For more information, see SSH Tunnel Set-Up.

Simply create a working directory for JMeter Corda on the client machine and unzip the performance test suite to this directory. This app requires an Oracle JRE version 1.8 build 172 or later. After unpacking, you should immediately be able to run it from a shell by typing java -jar jmeter-corda.jar. Please refer to Running JMeter Corda for details and command line options.

The same JAR file used for running the client can be run as a server as well by starting it with the -s flag as part of the JMeter arguments. It can be installed by simply copying the JAR file to the server and having an adequate JRE installed.

If SSH tunneling is in use, the server will also need access to the same RMI port mappings file used on the client side. Also, if the client side uses a customised JMeter properties file that differs from the default one baked into the JMeter JAR file by more than just the list of remote host names from, this needs to be used on the server side as well. See Running JMeter Corda for details on the command line options required. A typical command line might look like this:

java -jar <path to jmeter-corda jar> -XjmeterProperties <path to properties file> -XserverRmiMappings <path to RMI mappings file> -- -s

If you want to use JMeter Corda remotely, it is suggested to install the JMeter server as a system service on the servers it is required to run on. Assuming a Linux system with a systemd-based run control, the service to install would look something like this:

[Unit]
Description=Jmeter Corda
Requires=network.target

[Service]
Type=simple
User=<jmeter Corda user>
WorkingDirectory=<jmeter deploy directory>
ExecStart=/usr/bin/java -Xmx512m -jar <JMeter deploy directory>/jmeter-corda.jar -XjmeterProperties <path to properties file> -XserverRmiMappings <path to RMI mappings file> -- -s
Restart=on-failure

[Install]
WantedBy=multi-user.target

Was this page helpful?

Thanks for your feedback!

Chat with us

Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.

Propose documentation improvements directly

Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.

We're sorry this page wasn't helpful. Let us know how we can make it better!

Chat with us

Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.

Create an issue

Create a new GitHub issue in this repository - submit technical feedback, draw attention to a potential documentation bug, or share ideas for improvement and general feedback.

Propose documentation improvements directly

Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.