Perf Distributed Testing
Kubernetes-native distributed load testing for JMeter, k6, and Gatling. Helm charts and Docker images for each tool's native distributed architecture.
Free Community · Enterprise £1,000/yr
After purchase, your license key is emailed by Lemon Squeezy. Use it on the download page to get registry credentials and Helm chart access.
What's Included
Not ready yet?
Get notified about updates and early-bird pricing.
You're on the list.
Something went wrong — please try again.
No spam. Unsubscribe any time.
Overview
perf-distributed-testing provides production-ready Kubernetes Helm charts and Docker images for distributed load testing across JMeter, k6, and Gatling. Each tool uses its native distributed architecture — no compromise, no workarounds.
Deploy as many pods as your cluster can provide. Scale load horizontally with a single Helm value change.
Why Three Separate Charts?
JMeter, k6, and Gatling each have fundamentally incompatible distributed models:
| Tool | K8s Workload | Coordination |
|---|---|---|
| JMeter | StatefulSet + Job | Java RMI (ports 1099, 50000) |
| k6 | Deployment | None — stateless segment runners |
| Gatling | StatefulSet + Job | Akka remoting (port 2552) |
A single unified chart cannot support all three without forcing every tool into an unnatural pattern. Each chart uses the right Kubernetes primitives for its tool.
Key Features
JMeter — RMI Controller-Workers
A StatefulSet gives workers predictable DNS names. The workerHosts Helm helper generates the exact -R flag from pod ordinals. An init container waits for all workers via DNS before the controller Job starts, so JMeter never attempts to connect to a pod that isn’t ready.
k6 — Stateless Segment Runners
k6 runners are stateless and interchangeable — a Deployment is the right fit. Each runner receives a RUNNER_INDEX and RUNNERS_TOTAL to calculate its independent slice of the virtual user load. Metrics stream to Prometheus or InfluxDB.
Gatling — Akka IP Discovery
Gatling uses IP addresses (not DNS names) for Akka remoting. An init container runs kubectl get pods to discover worker IPs and writes them to a shared volume. The master reads this file to form the Akka cluster. RBAC is created automatically.
Pricing Tiers
| Feature | Community | Enterprise |
|---|---|---|
| All three Helm charts (JMeter, k6, Gatling) | ✓ | ✓ |
| Private registry Docker images | ✓ | ✓ |
| Unlimited pods / workers / runners | ✓ | ✓ |
| Priority email support (next business day SLA) | — | ✓ |
| Architecture guidance & Helm values review | — | ✓ |
| Named account contact | — | ✓ |
| Price |
Free
|
£1,000
/year
|
| Get Free Access | Buy Enterprise |
30-day money-back guarantee · Annual license · Apache-2.0 source
Quick Start
# 1. Get your free license key at martkos-it.co.uk/store/perf-distributed-testing-download
# 2. Get a registry token and create the imagePullSecret
TOKEN=$(curl -s https://updates.martkos-it.co.uk/api/v1/registry-token \
-H "X-License-Key: YOUR_LICENSE_KEY" \
-H "X-Product: perf-distributed-testing" | jq -r .token)
kubectl create secret docker-registry martkos-registry \
--docker-server=registry.martkos-it.co.uk \
--docker-username=your@email.com \
--docker-password="$TOKEN" \
--namespace perf-testing
# 3. Load your test plan
kubectl create configmap my-test-plan \
--from-file=test-plan.jmx=./test.jmx \
--namespace perf-testing
# 4. Deploy
helm install my-test oci://ghcr.io/markslilley/charts/perf-jmeter \
--version 1.0.0 \
--namespace perf-testing \
--set test.configMapName=my-test-plan \
--set worker.replicas=3 \
--set global.imagePullSecrets[0].name=martkos-registry
FAQ
Do I need a license key to use the Helm charts?
The Helm charts are published to GHCR OCI and are publicly accessible — no license key required to pull them. The license key gates access to the pre-built Docker images from the private registry at registry.martkos-it.co.uk. You can also build images from source (Apache-2.0) without a key.
What’s the difference between Community and Enterprise?
Both tiers get identical technical access to all three charts and all three Docker images. Enterprise adds a priority support SLA (next business day response), architecture guidance, and a named contact at Martkos IT.
How many workers can I run?
Unlimited. There is no license-enforced cap on the number of pods, workers, or runners.
Which Kubernetes versions are supported?
Kubernetes 1.24+ is required for batch/v1 Job GA and stable StatefulSet DNS. Helm 3.10+ is required for helm test and OCI chart support.