- Installing JMeter for local test development
- Required JMeter plugins
- Configuring JMeter resource requirements
- Writing tests
- Reporting
JMeter is one of the load generators used in Kangal. A powerful tool which can be used for different performance testing tasks.
Currently, Kangal uses the docker image hellofresh/kangal-jmeter based on JMeter v5.5.
Apache JMeter features include ability to create and run performance test for different applications/server/protocol types:
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- SOAP / REST Webservices
- Database via JDBC
- LDAP
- and many more ...
Kangal requires a jmx testfile describing the test. To create and edit jmx files we recommend you to install JMeter locally.
- Install Java 11+ from official Java site.
- Install JMeter v5.5 from official JMeter site or using brew.
- Run JMeter UI from your terminal by command
jmeter
or follow the official documentation.
- Check if you have Plugins Manager installed, if not follow the official instructions.
- Open JMeter UI and click the right button in the top row.
- In the opened window got to Available Plugins tab and chose the plugin from the list. Then press Apply Changes and restart JMeter button.
List of external JMeter plugins used in Kangal setup:
- jpgc-tst=2.5 Throughput Shaping Timer
- jpgc-casutg=2.6 Concurrency Thread Group
- jpgc-fifo Inter-Thread Communication
- jpgc-functions Custom JMeter Functions
You can also use and modify example test files from Kangal repository as described at docs/jmeter/writing-tests.md. Reading the official documentation is strongly recommended to understand major concepts.
By default, Kangal does not specify resource requirements for loadtests run with JMeter as a backend.
You can specify resource limits and requests for JMeter master and worker containers to ensure that when the load generator runs, it has sufficient resources and will not fail before the service does.
The following environment variables can be specified to configure this parameter:
JMETER_MASTER_CPU_LIMITS
JMETER_MASTER_CPU_REQUESTS
JMETER_MASTER_MEMORY_LIMITS
JMETER_MASTER_MEMORY_REQUESTS
JMETER_WORKER_CPU_LIMITS
JMETER_WORKER_CPU_REQUESTS
JMETER_WORKER_MEMORY_LIMITS
JMETER_WORKER_MEMORY_REQUESTS
For the full list of possible environment variables check Kangal environment variables
More information regarding resource limits and requests can be found in the following pages:
- Resource Management for Pods and Containers in Kubernetes
- Kubernetes best practices: Resource requests and limits
Read more at docs/jmeter/writing-tests.md.
Read more at docs/jmeter/reporting.md.