Kangal-JMeter is a set of docker images specifically configured for Kangal
Based on these images Kangal creates JMeter-worker and JMeter-master pods automatically for every new load-test.
Kangal-JMeter base docker image is build together with JMeter plugin-manager and the following plugins:
- jpgc-fifo - used for Inter-Thread Communication
- jpgc-functions - used for Custom JMeter Functions
- jpgc-tst=2.5 - Throughput Shaping Timer
- jpgc-casutg=2.6 - Concurrency Thread Group
- cmdrunner-2.2 - JMeter specific Command Line Tool
- postgresql-42.5.1 JDBC driver for working with PostgreSQL used to send requests directly from JMeter to DB
- mongo-java-driver-3.12.11 - MongoDB Java Driver including the mongodb-driver-core (the core library), the mongodb-driver, and the BSON library to enable testing / sampling to a MongoDB database using classes from the MongoDB driver that are not available in the default version of the JMeter installation.
JMeter-worker and JMeter-master are built from a base image with a few environment variable additions.
Kangal-JMeter base image has RMI keys injected to provide secure connection between master and worker pods.
Logging configuration in log4j2.xml is added to base image to support logging.
Launcher.sh script runs in JMeter-master container, and it starts JMeter application in a container as soon as test.jmx
file is added to the container.
JMeter automatically creates a test report after the successful test run.
For every new test Kangal exports a environment variable called REPORT_PRESIGNED_URL
, which allows uploading a single file to it by simple doing PUT
request.
JMeter-master docker image uses the script launcher.sh
to upload the report by using this PreSigned URL.