Skip to content

perf-script-studio

perf-script-studio is perf-autocorrelator and perf-migrator merged into one binary. It takes a browser recording or a script you already have and gives you a runnable JMeter, k6 or Gatling test, with the values that change between runs extracted rather than replayed.

£99, one time. Every feature, all six conversion directions, perpetual licence. There are no tiers: the £59 Basic / £99 Pro split and the £79 single-direction / £149 bidirectional split are both withdrawn, and anyone holding any of those keys has everything at no extra charge.

Platforms: Linux x86_64, Windows x86_64, macOS universal (Apple Silicon and Intel in one binary).

The archive unpacks to a perf-script-studio-<version>/ directory holding one executable plus small perf-migrator and perf-autocorrelator shims, so a pipeline calling either of the names the merged products were sold under keeps working.

Terminal window
perf-script-studio activate YOUR-LICENSE-KEY # validate once, remembered on this machine
perf-script-studio status # which key is in use, and is it valid
perf-script-studio deactivate # forget it again

A key can also be supplied per run, and these are checked first, in this order: --license, PERF_SCRIPT_STUDIO_LICENSE, then licenses.perf_script_studio in perf-ecosystem.yml. The older PERF_MIGRATOR_LICENSE and licenses.perf_migrator are still honoured, so existing CI configuration keeps working.

Activating stores the key on that machine. It claims no device slot, so keeping several machines activated costs nothing.

Terminal window
perf-script-studio generate session.har --to jmeter -o load-test.jmx
perf-script-studio generate session.har --to k6 -o load-test.js
perf-script-studio generate session.har --to gatling -o LoadTest.scala

Correlation runs by default: values the server issued during the recording and that later requests send back are extracted and referenced, instead of being replayed as the literal they were on the day. --no-correlate turns that off. Static assets — images, CSS, fonts — are filtered out unless you pass --keep-static, and the output reports how many of the recording’s entries became requests.

correlate — what an existing script will need

Section titled “correlate — what an existing script will need”
Terminal window
perf-script-studio correlate --from jmeter existing-test.jmx
perf-script-studio correlate --from k6 script.js --json

A script has no responses in it, so this cannot say where to extract a value from — only that a hardcoded session id, CSRF token or JWT is sitting in a request and will be stale on the next run. It names the request each one is in. To get wired-up extractors, record the journey and use generate.

convert — between JMeter, k6 and Gatling

Section titled “convert — between JMeter, k6 and Gatling”
Terminal window
perf-script-studio convert --from jmeter --to k6 test.jmx -o test.js
# or the shorthands
perf-script-studio jmx2k6 test.jmx -o test.js
perf-script-studio jmx2gatling test.jmx -o Test.scala
perf-script-studio k62jmx script.js -o test.jmx
perf-script-studio k62gatling script.js -o Test.scala
perf-script-studio gatling2jmx Simulation.scala -o test.jmx
perf-script-studio gatling2k6 Simulation.scala -o test.js

All six directions are included. Anything that cannot be translated faithfully is reported as a warning naming what it costs — a While Controller’s loop, a JDBC sampler, an assertion scoped to a whole thread group — rather than dropped silently.

Terminal window
perf-script-studio web # http://localhost:7070, opens your browser
perf-script-studio web --port 8080 --no-open

The page is compiled into the binary, so there is nothing extra to install, and the server binds to 127.0.0.1 only. Scripts and recordings are read in that process and never leave the machine. It is the same interface as the free browser converter at tools.martkos-it.co.uk, without the 25-request cap and with correlation, batch analysis and JMX merge switched on.

Terminal window
perf-script-studio update # download the latest release
perf-script-studio update --check-only

The macOS build is a universal binary and is not signed with an Apple Developer ID, so macOS quarantines it on first run. Clear that once:

Terminal window
xattr -d com.apple.quarantine ./perf-script-studio

tools.martkos-it.co.uk converts scripts and recordings in the browser, free, up to 25 HTTP requests — enough for a single user journey. It runs entirely in the tab and does not correlate: the pattern library is what the paid product is worth, and a public WebAssembly module can be disassembled.

Buy perf-script-studio · £99 one time