Perf Migrator
Convert JMeter, K6 and Gatling scripts at scale and in CI. Free in your browser for a single journey; the CLI for whole suites.
Free in your browser · £79 single direction · £149 all 6
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.
Try it free first
The conversion engine runs free in your browser at tools.martkos-it.co.uk — all six directions, no signup, and your script never leaves the tab. Convert one of your own scripts before reading any further: it takes about ten seconds and tells you more than this page can.
The free tool handles up to 25 HTTP requests, which covers a single user journey. It is the same engine, not a crippled demo.
Buy the CLI when you outgrow that, which happens the moment the work is real:
| You need to… | Free browser tool | The CLI |
|---|---|---|
| Convert one user journey | ✓ | ✓ |
| Convert a whole suite | 25 requests max | Unlimited |
| Convert 200 scripts at once | — | --batch |
| Run conversion in CI | — | ✓ |
| Scan output for leaked secrets | — | ✓ |
| Produce an HTML conversion report | — | ✓ |
Overview
Stop rewriting scripts by hand. Perf Migrator converts performance test scripts between JMeter, K6, and Gatling — bidirectionally, across all 6 conversion directions. What takes days of manual work, Perf Migrator does in seconds.
Locked into JMeter but want to try K6? Migrating from Gatling to JMeter for a new client? Just run one command.
Not enough hours to do it yourself? The fixed-price migration service starts at £250 and includes the parts no converter can do faithfully.
Supported Conversions
| From | To | Command |
|---|---|---|
| JMeter (.jmx) | K6 (.js) | perf-migrator jmx2k6 test.jmx -o test.js |
| JMeter (.jmx) | Gatling (.scala) | perf-migrator jmx2gatling test.jmx -o Sim.scala |
| K6 (.js) | JMeter (.jmx) | perf-migrator k62jmx test.js -o test.jmx |
| K6 (.js) | Gatling (.scala) | perf-migrator k62gatling test.js -o Sim.scala |
| Gatling (.scala) | JMeter (.jmx) | perf-migrator gatling2jmx Sim.scala -o test.jmx |
| Gatling (.scala) | K6 (.js) | perf-migrator gatling2k6 Sim.scala -o test.js |
What Gets Converted
Perf Migrator doesn’t just translate syntax — it maps the full semantics of each tool’s test structure through an intermediate representation:
- HTTP requests — method, URL, headers, query parameters, request body (JSON, form, raw)
- Load profiles — virtual users, ramp-up time, duration, stages, iterations
- Assertions — status code, body contains, JSON path, XPath, response time
- Extractors — regex, JSON path, XPath, boundary, CSS selectors
- Data feeds — CSV datasets with variable mapping
- Think time — constant timers, Gaussian random timers, pauses
- Groups & transactions — logical grouping of requests
- Conditions — if controllers, conditional execution
- Authentication — Basic, Bearer token, API key
Pricing
| Feature |
Free
In your browser
|
Single Direction |
Professional
Bidirectional
|
|---|---|---|---|
| CLI tool (Windows & Linux) | — | ✓ | ✓ |
| HTTP requests, headers, bodies | ✓ | ✓ | ✓ |
| Assertions & extractors | ✓ | ✓ | ✓ |
| CSV data feeds & load profiles | ✓ | ✓ | ✓ |
| HTML reports & secrets scanning | — | ✓ | ✓ |
| Batch processing | — | ✓ | ✓ |
| Perpetual license | n/a | ✓ | ✓ |
| Script size | 25 HTTP requests one user journey |
Unlimited | Unlimited |
| Conversion directions | All 6 directions | 1 direction locked on first use |
All 6 directions JMeter ↔ K6 ↔ Gatling |
| Price |
Free
no signup
|
£79
one-time
|
£149
one-time
|
| Open the free tool | Buy Single | Buy Professional |
CLI Usage
# Convert a JMeter test plan to K6
perf-migrator jmx2k6 load-test.jmx -o load-test.js
# Convert with HTML report
perf-migrator jmx2k6 load-test.jmx -o load-test.js --html-report report.html
# Batch convert all JMX files in a directory
perf-migrator convert --from jmeter --to k6 "tests/*.jmx" --batch
# Convert Gatling to JMeter
perf-migrator gatling2jmx Simulation.scala -o test-plan.jmx
Use Cases
Migrating Teams
Your organisation standardised on K6 but has 200 JMeter scripts from the last 5 years? Convert them all in one batch:
perf-migrator convert --from jmeter --to k6 "legacy/*.jmx" --batch
Multi-Tool Teams
Different teams prefer different tools? Maintain scripts in one format and convert on demand:
perf-migrator jmx2k6 regression-suite.jmx -o regression-suite.js
perf-migrator jmx2gatling regression-suite.jmx -o RegressionSuite.scala
Evaluating Tools
Trying Gatling but need to keep your JMeter scripts as a fallback? Convert, evaluate, and convert back if needed.
Installation
Windows
- Download the ZIP from the download page
- Extract to a convenient location (e.g.
C:\Tools\) - Open Command Prompt or PowerShell
- Run:
perf-migrator --versionto verify - Set your license key:
set PERF_MIGRATOR_LICENSE=YOUR-KEY(or use--license YOUR-KEY)
Linux
- Download the ZIP from the download page
- Extract:
unzip perf-migrator-*.zip - Make executable:
chmod +x perf-migrator - Move to path:
sudo mv perf-migrator /usr/local/bin/ - Run:
perf-migrator --versionto verify - Set your license key:
export PERF_MIGRATOR_LICENSE=YOUR-KEY(or use--license YOUR-KEY)
Technical Details
- Binary size: ~4MB (native Rust binary — no runtime dependencies)
- Platforms: Linux x86_64, Windows x86_64
- Processing: All conversion runs locally — your scripts never leave your machine
- Output quality: Validated against 115 real-world scripts with 87% full success rate, 100% perf-lint zero errors
- Same engine as the free tool: the browser version is this binary compiled to WebAssembly, so output is byte-for-byte identical
FAQ
What if my scripts use unsupported JMeter elements?
Perf Migrator will convert what it can and emit warnings for unsupported elements (like BeanShell scripts or JSR223 preprocessors). The output is always valid — unsupported elements are documented in the conversion report so you know exactly what needs manual attention.
Why pay when the browser version is free?
Because the free one stops where the real work starts. It converts up to 25 HTTP requests — one user journey — one file at a time, by hand, in a browser tab. The CLI has no cap, batch converts a directory, runs in CI so conversions stay current as scripts change, scans output for credentials that came across from the source, and produces HTML reports for the people who have to sign off the migration.
If a single journey is genuinely all you need, use the free one. That is not a trick.
Can I use it for multiple projects?
Yes. Your license covers unlimited personal or commercial use across as many projects as you need.
What’s the difference between Single Direction and Professional?
Single Direction locks to whichever conversion pair you use first (e.g. JMeter→K6). Professional gives you all 6 directions — convert freely between any combination of JMeter, K6, and Gatling.
Is my data safe?
Everything runs locally in a native binary. No data is sent anywhere. Your scripts stay on your machine.