Skip to content

JMeter Won't Open a Test Plan (JMX Load Errors)

Fix JMeter test plans that won't open: Error loading test plan, XML parse errors, merge conflict markers, and version mismatches, with recovery steps.

Difficulty
intermediate
Guide type
troubleshooting
Estimated read time
6 min read
Last verified version
Verified JMeter 5.6

JMeter Won’t Open a Test Plan (JMX Load Errors)

Section titled “JMeter Won’t Open a Test Plan (JMX Load Errors)”

Opening a .jmx file shows a dialog or log entry such as:

Error loading test plan

with an XML parse detail like:

org.xml.sax.SAXParseException: The element type "HTTPSamplerProxy" must be terminated by the matching end-tag "</HTTPSamplerProxy>".

Other variants open the GUI but show an empty or partially built test plan, or log unknown-element warnings during load.

A JMX file is XML, so load errors mean either the XML is malformed (interrupted save, manual edit, or git merge conflict markers) or JMeter cannot construct an element it finds (missing plugin JARs or a newer JMeter version). Repair the XML first, then check plugins and versions.

CauseSpecific ErrorWhy it happens
Interrupted saveTruncated file, abrupt SAXParseExceptionA crash or full disk stopped the write mid-file
Git merge conflict markersParse error at <<<<<<<Merging left conflict markers inside the XML
Manual hand editTag mismatch errorsA text edit broke tag nesting or escaping
Missing plugin JARsUnknown element warnings, missing samplersThe plan references elements whose classes are not installed
Version mismatchPlan loads partially or with warningsA newer JMeter wrote features an older JMeter does not know

Open jmeter.log after the failed load. The SAXParseException carries a line and column number, which points straight at the broken region of the file.

Open the JMX in a text editor and check:

  1. Merge conflict markers: search for <<<<<<<, =======, and >>>>>>>. Remove them and keep the correct element.
  2. The file ending: a complete plan ends with </jmeterTestPlan>. If it stops mid-tag, the save was interrupted.
  3. Tag nesting around the reported line: every opened element needs its matching close tag, and special characters in attribute values must stay escaped.

If the file is truncated or badly mangled, restoration beats hand repair:

Terminal window
# Compare against the last committed version
git diff HEAD -- path/to/plan.jmx
# Restore the committed copy
git checkout HEAD -- path/to/plan.jmx

Keep test plans in git going forward; JMeter has no built-in autosave, so version control is the recovery mechanism.

If the XML is valid but elements are missing after load:

  1. Look for unknown-element or class warnings in jmeter.log.
  2. Install the matching plugin JARs into lib/ext/, following ClassNotFound & Missing JARs.
  3. Reopen the plan and confirm every element appears in the tree.

The JMX header records which version wrote it:

<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.6.3">

If the jmeter attribute is newer than your installation, open the plan with that version (or newer) and re-save it, or upgrade your installation. Newer JMeter reads older plans without trouble; the reverse direction is where load errors appear.

ResourceUse when
ClassNotFound & Missing JARsElements fail to construct because plugin JARs are missing
GUI works, CLI failsThe plan loads but the CLI run misbehaves
Building a Test PlanSaving and organizing plans safely
Hints and TipsGeneral test plan hygiene

Often, yes. If the damage is a truncated tail or merge conflict markers, fixing the XML by hand restores the plan. When whole sections are missing, restoring from git or a backup is faster and safer than reconstruction.

Why does my JMX open on a colleague’s machine but not mine?

Section titled “Why does my JMX open on a colleague’s machine but not mine?”

Version or plugin differences. Check the jmeter attribute in the JMX header against your installed version, and compare the contents of lib/ext/ for plugin JARs the plan depends on.

Where does JMeter report the exact XML error?

Section titled “Where does JMeter report the exact XML error?”

In jmeter.log. The SAXParseException line names the problem and includes line and column numbers, which map directly to a position in the JMX file.

Save before large edits, keep plans in git so merges are visible and reversible, and avoid hand-editing the XML without an editor that validates well-formedness. Committing after each meaningful change keeps the last-good version close.

On this page