In Distributed testing results folders are created per user or thread - jmeter

I am running into the following strange issue.
Issue In Distributed testing results folders are created per user or thread.
Test has been executed from master machine with One Slave machine.
Both machines have same version of java8.
Actual Results 4 Results has been created. 2 of folders has Aggregate Report and ViewTree results files. 2 of folders has just ViewTable Results files.
Expected Results Supposed to be created just One folder with Aggregate Report,View Tree and View Table results files.
Any one has encounter this issue?I am not sure what went wrong,please advise.
Below are the screenshots of Master and Slave machine settings.
Below screenshot shows the configuration of Master Machine
Below screenshot shows the configuration of Slave Machine
Thanks,
Raj

Simply don't use JMeter Listeners for anything but tests development and debugging. When it comes to running your test make sure you have any listeners deleted from the test plan (or at least disabled) as they are don't add any value, the only thing they do is consuming your JMeter load generators resources.
Just run your test in command-line non-GUI mode like:
jmeter -n -t test.jmx -R slave1, slave2, slave3 -l result.jtl
Once your test will be finished you will either be able to open this result.jtl file with the listener of your choice or generate HTML Reporting Dashboard out of it.
See Remote Testing User Manual chapter for more details.

Related

JMeter SummaryReport AggregateReport is recording the results from View Results in Table data

I have 3 listeners setup to write to a file SummaryReport, AggregateReport, and ViewResultsInTable. I am on a MacBook os Big Sur 11.5.2 and JMeter 5.4.1. Weirdly enough, I get the ViewResultsInTable data in both the SummaryReport.csv and AggregateReport.csv. While I am writing the Test Plan, it is easy to recover because the UI Reports are correct. However, when I want to move to the real test and run it from the command line, I won't be able to recover.
Is there any way to clear that up?
Saving and reading the test results are generic in all Listeners. Hence you will get identical test results in all the files.
If you didn't click "Configure" button and changed the metrics to store you will get the same files no matter which listener(s) you use, you just ended up with 3 identical files (plus the .jtl file if you're running your test in command-line non-GUI mode)
In case of Summary Report and Aggregate Report listeners all the metrics you're seeing are calculated from the individual Sample Result entries so if you open the .jtl results file after your non-GUI test execution finishes you will see the calculated aggregate metrics.
In general you should be using Listeners only for tests development and, it doesn't make a lot of sense to add Listeners for the test execution, they don't add any value, just consume valuable resources. So disable/remove all the listeners, you should be able to get all you need from the aforementioned .jtl results file.
If you want to see the output of Aggregate Report and/or Summary Report listeners without opening JMeter GUI - you can generate them from the .jtl results file using JMeter Plugins Command Line Tool

Scheduler execution gets over/stopped before specified time

We are running Jmeter scripts in Scheduler mode for 1 hour (Master - 4 Slave machines), however the execution gets over/stopped before 1 hour time (ex: it stops in 40 mints).
Below is the setup: Jmeter version 5.1
Thread Group: Scheduler checked with Duration 1 hour, Forever is selected.
CSV config: Recycle EOF is set to True, Stop thread on EOF is set to False. The CSV is having 20 rows and these rows data has been used/fetched multiple times during 40 mints.
--HTTP Sampler
Tried multiple times with different duration, still the same issue. No errors logged in jmeter.log file.
Referred below resource as well:
JMeter ignore Duration time when using Scheduler
Please suggest to make it to work for complete specified duration.
Unfortunately we're not telepathic enough to guess what's wrong without seeing jmeter.log file from the master machine and jmeter-server.log files from the slaves, the answer should be either in these or in the .jtl results file.
Your test configuration looks very good, just check 3 points:
make sure that the OS time is synchronised on all the slaves and the master
Copy your CSV file to all the slaves
None of Stop Thread/Stop Test/Stop Test Now radiobuttons in the Thread Group are checked
Also be informed that according to 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure article you should always be using the latest version of JMeter so consider upgrading to JMeter 5.2.1 (or whatever is the latest stable JMeter version available at JMeter Downloads page) on next available opportunity as it might be the case you're suffering from a form of a bug which has been already fixed.

JMeter distributed testing - how to get aggregated report?

I have three slaves (jmeter-servers) running on EC2 instances, and in one case – (1) JMeter GUI on a local laptop, on another – same test plan (2) running from a command line on yet another EC2 instance.
In case of GUI I can see all the aggregated numbers for Throughput, 99%, etc. in – well, GUI. I'm creating a jtl file with Aggregate Report listener.
From watching Datadog charts monitoring the application server parameters (CPU usage, memory, etc.) I see that in case of a command line and everything on EC2 load is more than twice higher than when my local laptop is communicating with the jmeter-servers, meaning probably that the network becomes a bottleneck. So I want to run everything on EC2.
But then – how do I get access to the same aggregated numbers when I'm running from the command line when all four machines are EC2 instances? The huge jtl file contains records for each transaction, not the aggregated one line of the entire run result.
On an attempt to download that jtl from EC2 and open it in GUI on a local laptop it generates some error instead of showing aggregated data.
Am I using a wrong listener to get to the summary data? (Tried Summary Report – it creates even larger jtl file, not the one line I'm looking for.)
Problem in this case is not running scripts via JMeter GUI. Instead it is related to network.
I had a similar distributed setup in EC2-environment and I successfully executed heavy load tests in GUI mode. In my case, all my JMeter (master/slaves) were running on EC2 instances (windows environment). So, I will recommend you to setup your JMeter (Master) on EC2 and run scripts via GUI mode.
If you still want to run in command line mode then you simply need to pass command to create jtl file while the script runs on command line. Later on you can use this JTL to generate any JMeter report as per requirement. For more details check..
Jmeter - Run .jmx file through command line and get the summary report in a excel
jmeter -n -t /path/to/your/test.jmx -l /path/to/results/file.jtl
Please refer to Dmitri answer in following question to reduce JTL size.
How can we control size of JTL file while running test from Non GUI Mode

JMeter getting hanging in GUI mode

I'm having problem with jmeter while running the test plan. Suddenly my Jmeter starts hanging and appears as a black screen in GUI mode. I was running recording controller with multiple thread groups (4 thread groups). Each thread group with 25 users.
I'm using Jmeter 2.11 (current version). I'm not sure whether it is due to overload or some other reason.
Regards
Nayasoft
Don't ever use GUI mode for load test. Run JMeter in command-line non-GUI mode as follows
jmeter -n -t /path/to/your/testplan.jmx -l /path/to/testresults.jtl
Also if you have any listeners in your test plan - disable or remove them as well. After test execution you should be able to open testresults.jtl file with the listener of your choice and analyze results, but don't use them during load test.
Make sure that you following Performance Checklist and other recommendations from JMeter Performance and Tuning Tips guide
You have run out of JMeter/JVM memory. You can increase in with environment variables, command line options when you start jmeter, or change some values in jmeter.properties
This page describes how to start jmeter with more memory.
http://jmeter.apache.org/usermanual/get-started.html
One easy way is to set the environment variable before running jmeter:
set JVM_ARGS="-Xms1024m -Xmx1024m"
This will allow your tests to run longer before running out of memory, but if you store results in memory (for instance using View Results Tree listener), you will still run out eventually. For long running tests, or accurate measurement of short running tests, it is better to run in non-GUI mode, and save results to file, instead of memory.
Graphs can still be generated after the run from the saved results using jmeter utilities.

Fetch response times in JMeter running remotely

Ok so I set up my JMeter to run remotely using one slave computer (possibly more to come), and it's working out for the most part EXCEPT that I can't fetch the response time over time-graphs function using the JMeter plugin. I'm still able to use the "PerfMon Metrics" tool to get the CPU/Memory values from the slave computer, so I don't understand how I'm not able to get the response time results.
Does anyone have any experience using that function?
I would check the master- slave configuration: be sure that
the same Jmeter release is used
same directory tree structure is used
Jmeter-plugins are installed on both systems
...
If you use a standard "Summary report" listener, and save data to a file in the master, then you can reload and analyse the data off line with any listener.
HTH

Resources