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.
Related
I am trying to run the JMeter test plan in the GitLab pipeline and facing a strange issue that Setup Thread Group doesn't run when the test plan is triggered.
JMeter Version : 5.4.1
Java : Open JDK 11
System : Linux
The test plan starts running all the other thread groups without running the Setup Thread Group first causing the test to fail completely. I am running JMeter in non gui mode.
Tried disabling all other thread group and still the problem persists
I can think of 2 reasons for not running the Thread Group, no matter whether it setUp, tearDown, normal or custom:
The number of threads is 0
The Thread Group has CSV Data Set Config and the CSV file is not present
The Thread Group has a JMeter Plugin and the plugin is not installed
Normally JMeter reports the fact of starting and stopping threads in jmeter.log file, you can take a look there and see what's going on. Additionally you can increase JMeter's logging verbosity to DEBUG level if normal level doesn't show the root cause of the unexpected behaviour.
And last but not the least according to JMeter Best Practices you should always be using the latest version of JMeter so consider upgrading to JMeter 5.5 (or whatever is the latest stable version available at JMeter Downloads page)
When i run the script with small number of users/threads and via the CMD the run finishes smoothly (188) users
when i increased the users to 1000 with a ramp up of half an hour steady state for 1 hour and ramp down for half hour
the run crashed in the middle with a errorlevel=-1 ,
error from the CMD when it crashed
things i've done :
-Increased the Heap size to 18g as the machine has memory of 32g
-iteration time is 1 min
-think time 5 seconds
is there anything that can be edited in the jmeter configurations or this error is coming from the windows itself?
Your errorlevel=-1 doesn't tell anything to us apart from the fact that JMeter Java process has exited with non-zero exit status.
The reason most probably in jmeter.log file.
You can also check the presence of .hprof files in the folder where you launched JMeter from, if this is the case - it indicates that JMeter has encountered an OutOfMemoryError
With regards to edited in the jmeter configurations - just make sure to follow JMeter Best Practices and if you do already you should consider allocating another machine and running your test in Distributed Mode
While running the script in non-gui mode for jmeter tests, test gets completed but it does shows min: 0, max: 0...
note:
JMeter 5.4 is installed without any 3rd party plugin.
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
Please help
It means that none of Samplers were executed and the reasons could be in:
The number of threads in Thread Group is 0
The test contains CSV Data Set Config and the .csv file is not there
The test relies on a JMeter Plugin which is not installed
etc.
The reason should be in jmeter.log file, check it and I believe you will find either the cause or at least a clue there.
Also be aware 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.4.1 (or whatever is the latest stable version available at JMeter Downloads page) on next available opportunity
I guess you probably found the answer - but maybe this response will be useful to someone.
I've been battling a similar issue -> locally all was working fine (in GUI and non-GUI mode), but as soon as I tried to run the jmx on the server I could see it would start threads, all logs seemed normal (standard info logs within jmeter.log at start) but still no requests were actually made (confirmed by observing logs from the target server). I tried running trace logs but still nothing out of the ordinary - I could see proper HTTP config, threads were as if normal... But the generated jtl file only contained a header and no requests actually were made.
After some hair pulling I finally found my issue - I'm using variables for threads, rampup and loop which I invoke using ${__P(threads,)} syntax and when running the non-GUI load test I pass those with -J to the command line (f.ex. jmeter -Jthreads=50 ...)
I didn't pass the loop parameter since I figured it would just default to 1 (and that is also the impression I get when looking at the logs where I see all thread started ... entries) - turns out for some reason it will log, but won't execute anything actually till I pass a value for that loop.
So if you run a test plan and notice it only simulates doing something but you get no results in the target log file -> confirm you're setting ALL variables used for thread groups including those you suspect to default
I am trying to run long SOAK tests (24h) monitoring server CPU/RAM utilization in Jmeter. Using perfmon server agent and plugin. Tests are run headless, using JMeter Docker image. Got everything setup and job is running fine in Jenkins. Measurements are sent to the server every 10 minutes. The tests results are saved in CSV during the test.
However, although the test runs for 24 hours, Perfmon agent seems to be sending data only for around 2 hours. This is how much data i can see is saved in CSV file. Regardless test runs for 5 hours or 24, 2 hours of data is saved.
I wonder what causes it, ideally i would like to see all the data saved for the whole duration of the test. Would appreciate comments. Cheers
The issue was caused by 'packet_write_wait: connection to 3.126.218.168 port 22: broken pipe' error.
This was resolved by keeping ssh session alive, i.e. modifying ~/.ssh/config file and setting required values for 'Host * ServerAliveInterval ServerAliveCountMax'.
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.