JMeter - Reading a Custom Property file in Non-GUI mode - jmeter

I have a custom property file, which is read via
jmeter -q C:/Users/503289283/Downloads/eml_base.properties -t Service_Names.jmx
Same thing when executed in Non-GUI mode i.e.
jmeter -q C:/Users/503289283/Downloads/eml_base.properties -n -t Service_Names.jmx
Throws an undesirable message at the end of run
Script is running for a longer duration than it should. Output received is perfect.
Solving this could reduce the Test duration (Non-GUI mode).
Thanks for your support.
Regards,
Ajith

The "undesired" message you're getting is from jsch library which is reading some stream hence JMeter cannot gracefully terminate its threads because SSH connection is open.
So you need to take a look at what is being done on SSH/SFTP level.
I also fail to see any results in the output which means that no samplers have been successfully executed at all, check out jmeter.log file for any suspicious entries. You may also want to increase JMeter logging verbosity for the jsch library by adding the next line to log4j2.xml file:
<Logger name="com.jcraft.jsch" level="debug" />

Related

JMeter - The JVM should have exited but did not

I have a script which does the following:
Script executes fine in GUI mode:
jmeter -q C:/Users/503289283/Downloads/eml_base.properties -t Service_Names.jmx
When executed in Non-GUI mode i.e.
jmeter -q C:/Users/503289283/Downloads/eml_base.properties -n -t Service_Names.jmx
We receive the below message:
Have added an entry in the log4j2.xml file. Restarted JMeter.
Executed the script again in Non-GUI mode. Still see the same message. Didn't find anything suspicious in the log file.
Not sure where is the issue. Please help.
Regards,
Ajith
Script executes fine in GUI mode:
jmeter -q C:/Users/503289283/Downloads/eml_base.properties -t Service_Names.jmx
it doesn't mean that the "script executes fine", it means that you're just opening Service_Names.jmx test plan in JMeter GUI, the script is being "executed" when you click this button:
Or press CTRL+R
Your test cannot be finished successfully (in fact there are no successful Sample Results) because SSH Command sampler is still waiting for the response from the SSH server.
I don't know what eml status command does and how does the output look like,try running it via new instance of Bash (or whatever is your shell) interpreter as:
/bin/bash -c "eml status"
If the command is interactive, i.e. the output never ends until you press the button, you will need to reconsider your approach.
More information: How to Run External Commands and Programs Locally and Remotely from JMeter

How to handle JMeter Master slave issue

I am using below shell script to execute JMeter from master machine and post execution of Jmeter i am triggering JMeterPluginsCMD.sh to generate jtl to csv file
for filepath in /tmp/scripts/*.jmx; do
filename=$(echo "$filepath" | sed -r "s/.+\/(.+)\..+/\1/")
echo "Running testplan ${filepath}"
resultpath="/tmp/results/testresult.jtl"
logpath="/tmp/results/log/testlog.log"
jmeter -n -t "$filepath" -l "$resultpath" -R"$SLAVE_IP_ADDRESSES" -
Jserver.rmi.ssl.disable=true -j "$logpath"
done
sleep 600
JMeterPluginsCMD.sh --generate-csv "/tmp/results/test.csv" --input-jtl
"/tmp/results/testresult.jtl" --plugin-type AggregateReport
sleep 600
Above code works fine with limited user load, but under high load when master does not receive below acknowledgment from slave.
021-05-18 06:37:02,457 INFO o.a.j.JMeter: Finished remote host: 10.1.1.1
It does not trigger JMeterPluginsCMD.sh.
What are the possible reasons of not receiving this acknowledgment. Is there any way to by pass the communication issue(JMeter Master->slave) and execute
JMeterPluginsCMD.sh with out any fail
If you "by pass the communication issue(JMeter Master->slave)" you won't get any results therefore it will be no sense in running your "JMeterPluginsCMD.sh".
So I would rather suggest
looking into the jmeter.log file on the slave machine and perhaps on the master machine as well, there is a chance you will be able to figure out what's wrong from the log
ensure that both have enough headroom to operate in terms of CPU, RAM, Network, Disk, etc. see 20 Command Line Tools to Monitor Linux Performance or just go for JMeter PerfMon Plugin
make sure to follow JMeter Best Practices
If your current slave machine is not powerful enough in order to conduct the "high load" you might need to add another slave and divide your "high load" by half.

Get an jmeter Error Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445

I'm using JMeter version 5.11. My test plan has one thread group.
I want to run the load test with 100 thread groups, Always gives following error any other suggestions to overcome this?
Run following command in jmeter bin folder
sh jmeter -n -t "path to .jmx file" -l "path to output csv file" -e -o "path to output folder"
Then gives
Created the tree successfully for jmx
Starting the test # Mon ...
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
Note - Already added HTTP Request Defaults and set timeout periods(milliseconds) to Connect and response timeouts as 10000
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump
This is a normal message when test is in progress
So you just need to wait until test is over

Quit Jmeter after tests and save aggregate reports

Yesterday due to some reason my Jmeter Machine crashed and I do not have results.
These results run overnight on a laptop, what I am looking for is, I can quit Jmeter ones tests are done and my reports get saved automatically.
Given you run JMeter in command-line non-GUI mode like:
jmeter -n -t /your/script.jmx -l /test/results.jtl
JMeter should store test execution results in the results.jtl file. When the test is finished you will be able to open the file with the Listener of your choice using "Browse" button and analyze the results.
Even in that case you can loose some data in case of JVM crash, by default JMeter doesn't store each single result, it periodically flushes results data. You can add the next line to user.properties file in order to tell JMeter to store each single result immediately (JMeter restart will be required to pick the property up):
jmeter.save.saveservice.autoflush=true
Alternative way is passing the property via -J command-line argument like:
jmeter -Jjmeter.save.saveservice.autoflush=true -n -t /your/script.jmx -l /test/results.jtl
See Listeners > Default Configuration to learn more about JMeter defaults, what properties are available and what can be changed to make results to look accordingly to your requirements
Run the JMeter always in Non-GUI mode.
Following is the command:
jmeter.bat -n -t Sctipt.jmx -l results.jtl
-l : option to save the results.
When the test is completed, automatically results will be saved in results.jtl file. you can give full path also, otherwise, saves the file in current directory i.e., JMeter folder where 'jmeter.bat' file present.
Don't keep any listeners in the script as they utilizes system resources.

what if jmeter script has multiple graph listeners,In that case how can the results be stored in separate jtl files in non-gui mode?

i have a script with disabled aggregate graph listener. I ran the test in non GUI mode.
jmeter.bat -t test.jmx -l result.jtl
After running the script,I opened the result file in aggregate graph listener and i was able to view the graph.
Now i need to add more graphical listeners to my script.How can I get separate result files for the listeners in non-GUI mode ( all listeners disabled in order to optimize the script).
I am able to open the result file in the aggregate graph listener . But when i tired opening same file in Response Time Graph, I get message -
Unable to graph, not enough data
Results.jtl file looks like this -->
You do not need any listener in your test!! The below command is enough to create a result file for the test.
jmeter.bat -t test.jmx -l result.jtl
Once the result file is created, You just open them in any listener you want. the listener can you give the appropriate results - even the graph listeners.
You do NOT actually need any separate result file for each listener.

Resources