jmeter
Run performance and load tests
TLDR
Run a specific test plan in nongui mode
Run a test plan in nongui mode using a specific log file
Run a test plan in nongui mode using a specific proxy
Run a test plan in nongui mode using a specific JMeter property
SYNOPSIS
jmeter [options] [propertyfile]
PARAMETERS
-n
Run in non-GUI (batch) mode
-t filename
Load test plan file (.jmx)
-p propfile
Override JMeter properties file
-l filename
Write results to .jtl file
-j filename
JMeter run log file
-r
Run test on remote hosts from properties
-R host1[,host2...]
Run test on specified remote hosts
-e dashboardfolder
Generate HTML report dashboard
-o dashboardfolder
Output folder for HTML report
-g genPropFile
Generate report from existing .jtl file
-Dprop=value
Define JMeter property
-Jprop=value
Define JVM system property
-Gprop=value
Define property for remote servers
-X
Exit JMeter immediately
-h, -help
Print usage help
-v, -version
Print version information
DESCRIPTION
Apache JMeter is an open-source application designed to load test functional behavior and measure performance of applications, including web, FTP, databases, and more. It supports protocols like HTTP, JDBC, LDAP, and SOAP.
The jmeter command launches JMeter's GUI by default for test plan creation and execution. For production load testing, use non-GUI mode to avoid GUI overhead consuming resources. Test plans are saved as .jmx files in XML format.
JMeter generates reports in CSV, XML (.jtl), or HTML dashboards. It supports distributed testing across remote servers, plugins for extensibility, and scripting via Beanshell or JSR223. Ideal for simulating heavy loads with threads, assertions, timers, and samplers. Requires Java 8+ runtime.
CAVEATS
Requires JDK 8+; GUI mode unsuitable for heavy load tests due to resource use; ensure JAVA_HOME set; distributed mode needs server setup and firewall config.
INSTALLATION
Download from jmeter.apache.org, unzip, optionally set JMeter_HOME. Run bin/jmeter script; add to PATH for global use.
NON-GUI EXAMPLE
jmeter -n -t test.jmx -l results.jtl -e report -o dashboard/
Executes test non-interactively, saves results, generates HTML report.
HISTORY
Originated in 1998 by Stefano Mazzocchi at Apache Software Foundation as a 100% Java desktop app for web app testing. Evolved into full Apache top-level project (2008), with major releases adding protocols, non-GUI mode, and reporting. Widely used in DevOps for CI/CD integration.


