Apache JMeter is a load testing tool for APIs, web apps, and services.
This stack runs JMeter in non-GUI mode using Docker Compose.
flowchart LR
User([User]) -->|:8080| JMeter[JMeter]
JMeter -->|load test| Target[Target Service]
JMeter --> Results[(./results)]
- Place your JMeter test plan (
.jmx) in thetestsfolder. jmeterservice stays running for ad-hoc commands.jmeter-runprofile executes a test plan in headless mode.- Result files are written to the
resultsfolder.
- Image:
justb4/jmeter:latest - Container names:
jmeter(idle runner container)jmeter-run(one-shot test execution)
- Mounted folders:
./tests:/tests(input test plans)./results:/results(output reports/results)
- Default behavior:
jmeterkeeps alive withsleep infinityjmeter-runexecutestest-plan.jmx
From the repository root:
cd jmeter
docker compose up -dIf you use Podman:
cd jmeter
podman compose up -dRun the default test plan:
docker compose --profile run up --abort-on-container-exit jmeter-runPodman equivalent:
podman compose --profile run up --abort-on-container-exit jmeter-rundocker compose exec jmeter jmeter -n -t /tests/my-plan.jmx -l /results/my-plan.jtlPodman equivalent:
podman compose exec jmeter jmeter -n -t /tests/my-plan.jmx -l /results/my-plan.jtldocker compose exec jmeter jmeter -n -t /tests/test-plan.jmx -l /results/results.jtl -e -o /results/html-report
docker compose down- Add your
.jmxfiles intojmeter/tests/. jmeter-runexpectstests/test-plan.jmxto exist.