Jmeter:Difference between jmeter.sh and jmeter without extension file in jmeter

Viewed 543

I would need clarification on jmeter.sh and jmeter file without ext ,which are in bin folder.

With example:

1.If i setup different HEAP size in jmeter and jmeter.sh file,which one will be considered.?

2.Does the above depend on how i run the test?(for ex: jmeter -n -t or jmeter.sh -n -t)

3.If the test started with jmeter command instead of jmeter.sh ,will intern jmeter.sh be called and hence heap in jmeter.sh be used or vice-versa?

related question to the difference b/w jmeter.bat and jmeter- difference between jmeter.bat/jmeter.sh And jmeter.file

2 Answers
  • jmeter.sh is a wrapper for jmeter script (without extension) which does some pre-requisite validations like getting current working dir, getting Java version, constructing arguments depending on Java version, etc. so you'd better use this file for running JMeter under Unix and derivatives
  • jmeter is a wrapper for ApacheJMeter.jar binary, it sets default JVM arguments and overrides and adds more Java arguments depending on your operating system

The sequence is the following:

  • jmeter.sh calls jmeter
  • jmeter calls ApacheJMeter.jar

If you want to change HEAP or whatever - set the appropriate environment variable like:

HEAP=4G && export HEAP && ./jmeter.sh -n -t /path/to/test.jmx ...

More information: How to Get Started With JMeter: Installation & Test Plans

jmeter.sh calls jmeter, both unix scripts , jmeter is the main/default script

jmeter run JMeter (in GUI mode by default). Defines some JVM settings which may not work for all JVMs.

jmeter.sh very basic JMeter script (You may need to adapt JVM options like memory settings).

You can set before running both the JVM_ARGS

It may be necessary to set a few environment variables to configure the JVM used by JMeter. Those variables can be either set directly in the shell starting the jmeter script. For example setting the variable JVM_ARGS will override most pre-defined settings, for example

JVM_ARGS="-Xms1024m -Xmx1024m" jmeter -t test.jmx [etc.]

will override the HEAP settings in the script.

Related