jmeter-cli-editor
jmeter-cli-editor is a terminal UI (TUI) editor for JMeter .jmx test plan files. Edit thread groups, HTTP samplers, extractors, assertions, and CSV data sets without launching the JMeter GUI.
| Price |
|---|
| £59 one-time (launch price: £29 for first 50 sales) |
Platform: Linux x86_64, Windows x86_64
Why Use It
Section titled “Why Use It”- CI/CD environments: No display server required. Edit JMX files on headless build agents.
- Speed: Open a 2,000-element test plan in under a second. The JMeter GUI takes 30+ seconds.
- Remote editing: Edit over SSH without X forwarding.
- Scripting: Automate changes with the
--setflag (non-interactive mode).
Installation
Section titled “Installation”chmod +x jmeter-cli-editorsudo mv jmeter-cli-editor /usr/local/bin/jmeter-cli-editor --versionOpening a Test Plan
Section titled “Opening a Test Plan”jmeter-cli-editor my-test.jmxTUI Navigation
Section titled “TUI Navigation”| Key | Action |
|---|---|
↑ / ↓ or j / k | Navigate elements |
Enter | Expand / edit element |
e | Edit current element’s properties |
n | New element (child of current) |
d | Delete element |
c | Copy element |
p | Paste element |
/ | Search elements by name or type |
s | Save (writes to original file) |
S | Save As (prompt for new filename) |
u | Undo |
r | Redo |
q | Quit (prompts if unsaved changes) |
? | Help |
Element Tree
Section titled “Element Tree”The left panel shows the test plan tree. Element types are colour-coded:
- Thread Groups — blue
- Samplers — green
- Controllers — yellow
- Extractors / Post-processors — cyan
- Assertions — red
- Listeners — grey (highlighted if active)
- Config elements — magenta
Editing Properties
Section titled “Editing Properties”Press e on any element to open the property editor. For an HTTP Sampler:
Name: [Login Request ]Protocol: [https ]Server: [${TARGET_HOST} ]Port: [443 ]Path: [/api/auth/login ]Method: [POST ▼ ]Body Data: [{"username":"${user}", ] [ "password":"${pass}"} ]Tab between fields. Ctrl+S saves and closes the editor.
Non-Interactive Mode (--set)
Section titled “Non-Interactive Mode (--set)”For scripted changes without the TUI:
# Change thread count in all Thread Groupsjmeter-cli-editor my-test.jmx \ --set "ThreadGroup.num_threads=100"
# Change server name across all HTTP Samplersjmeter-cli-editor my-test.jmx \ --set "HTTPSampler.domain=staging.example.com"
# Set multiple propertiesjmeter-cli-editor my-test.jmx \ --set "ThreadGroup.num_threads=50" \ --set "ThreadGroup.ramp_time=60"This is idiomatic for CI/CD parameterisation:
jmeter-cli-editor test.jmx \ --set "HTTPSampler.domain=${TARGET_HOST}" \ --set "ThreadGroup.num_threads=${VUS}" \ --set "ThreadGroup.duration=${DURATION_SECONDS}"jmeter -n -t test.jmx -l results.jtlInspect Mode
Section titled “Inspect Mode”View all properties of an element without editing:
jmeter-cli-editor my-test.jmx --inspect "Login Request"Output:
Element: Login Request (HTTPSamplerProxy) HTTPSampler.domain = ${TARGET_HOST} HTTPSampler.port = 443 HTTPSampler.protocol = https HTTPSampler.path = /api/auth/login HTTPSampler.method = POST ...License
Section titled “License”export JMETER_CLI_EDITOR_LICENSE=your-license-key# orjmeter-cli-editor --license your-key my-test.jmx