I am using JMeter for load testing. I have simulate 1500 users with loop count 1. But JMeter stops sending request after 1388 users. I wait for 3 hour but user didn't get increase.
also i am able to access the site under test from another system when JMeter stops sending request, it means server is not under load.
First of all, run JMeter in non-GUI mode as
jmeter -n -t /path/to/your/testplan.jmx -l /path/to/testresults.jtl
Second: disable all the listeners during test run. After test execution completion you will be able to open testresults.jtl file with the listener of your choice and perform analysis
Third: follow recommendations from JMeter Performance and Tuning Tips fuide
Finally: if you will be still experiencing problems it means that you went above your load generator machine hardware limits and need an another machine(s) to run JMeter in distributed mode.
Related
I have a very simple test plan in JMeter. There is just one thread group with one get request. ( I created this to isolate an issue which I faced in another real world test plan)
I was trying to increase the load and analyse the result.
While reaching a point, say 5000 users, JMeter does not stop.
I was unable to manually stop or shutdown. While trying to do so, the following message is displayed. But there is no response after that even though I waited.
It says you can see the active number of threads in the upper right hand side, but I can see that there are no active threads.
If I go to task manager to end the task, the same pop up message is displayed in JMeter and hence I am not able to end the task.
Please can someone advise on why I am getting this message when I could not see active threads in JMeter UI.
You're violating one of the most important JMeter best practices: GUI mode is only for tests development and/or debugging
If you want to execute your load test with 5000 virtual users you should be running JMeter in command-line non-GUI mode like:
jmeter -n -t /path/to/your/test.jmx -l /path/to/result.jtl
Once your test finishes you can open the result.jtl file with the Listener of your choice or generate HTML Reporting Dashboard from it
I'm running Jmeter load test from command prompt for about one hour and test is not ending at one hour. It is taking more time that one hour.
I'm getting errors in Jmeter logs for failed transactions:
Non HTTP response code: java.net.SocketException
Non HTTP response message: Unexpected end of file from server
Please advise. Is it because of some threads is hanging and how to rectify it.
Thank you
Most probably you didn't set Connect and Read Timeout in Http Request default.
So if you server hangs, JMeter will wait infinitely for the response.
Beside ensure you set correct values in your scheduler.
If issue persists, please give more details with screenshot.
By default JMeter "asks" threads to stop and waits for their graceful shutdown. If threads cannot be stopped in a timely fashion you have the following options:
Implement a "hard stop", i.e. instead of "asking" threads to stop you need to "tell" them to stop. It can be done using i.e. Test Action sampler with Stop now action. (remember that in this case JMeter won't wait for graceful shutdown and you will get extra errors connected with abnormal threads termination)
The fact that JMeter threads are stuck may indicate problem with your application so I would recommend checking baseline health metrics on the application under test side using i.e. JMeter PerfMon Plugin. If there is enough headroom but it still works slowly or doesn't work at all it might indicate a bottleneck in your application code or infrastructure.
Also make sure you are following JMeter Best Practices and make sure your JMeter load generator(s) have enough CPU, RAM, etc. as in some cases JMeter can report "false negative" results due to lack of hardware resources.
My jmx file has 30 requests , 30 users, and response data may very according to the user logged. I am using view result tree as listener, my question is how to know for which user for which a request failed to get a response from server?
There are multiple options, to provide exact solution we need to know more details.
JMeter provides information about thread (virtual user) number as "Thread Name"
You can append the relevant JMeter Variable to the sampler name:
N.B. Don't use View Results Tree listener for anything but tests development and debugging as it is very resource intensive, when it comes to load test execution it will consume lots of the RAM and it may ruin your test. Run you test in command-line non-GUI mode and use listeners to analyse the results file after test completion. More information on JMeter tuning for the maximum performance: 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure
I am using JMeter 2.11 for simulate 10000 thread users. I use CSV data set config to simulate 10000 user load and take 2-3 HTTP request in my test plan. All 10000 user load applied successfully by Jmeter but main problem is when my last request goes idle (as I put my Jmeter http request on home page of my website) all sessions goes timed out after some time.
I also configure "app pool's Idle time out=0" and my application's web config's "session state timeout is 20" (I also increase this time from 20 min but no way). Also Keep Alive is checked on all http request.
Please suggest me what to do for keep my last request's session alive.
JMeter threads are never idle, if thread doesn't have any more samplers to execute or no more loops to iterate it's being shut down. 10 000 users is quite a high load, it might be a problem with your JMeter configuration, i.e. it is not capable of generating and sustaining 10 000 threads. In 99% of cases jmeter.log file has enough troubleshooting information.
In the meantime few recommendations:
Upgrade to the latest version of JMeter (for the moment it's Apache JMeter 2.13)
Make sure you use 64-bit server JRE or JDK
Provide JMeter enough Java Heap space, by default it comes with 512Mb only which is not enough to simulate 10k users
Run JMeter test in non-GUI mode
Disable all Listeners during test run
See 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure for above points explained and few more tips and tricks.
I'm using Jmeter 2.13 and something interesting is happening for which I need some help. I did two test on website with settings
test 1
users: 500
ramp up time:60
result:smooth connections
test 2
users: 500
ramp up time:120
result: crashes java
All I know is the Apache java GUI crashes. I don't know how to troubleshoot what's causing the crash. I know there are some elements with GUI you can configure to observe Jmeter server health stats i.e threads, load etc.
Also, on the settings where it crashes, a single request is made every 0.24 seconds.
On test case 1 where it worked this equates to 0.12 seconds a single request is made.
If the calculations are correct, theoretically speaking, it shouldn't crash right? (because the difference in negligible)
The answer is simple: don't use GUI mode to run a JMeter test. Ever. Use GUI only for test development and debugging.
Running JMeter in non-GUI mode is fairly simple:
jmeter -n -t /path/to/your/testplan.jmx -l /path/to/resultsfile.jtl
Once test finished you can open resultsfile.jtl with your favourite listener and analyse test results.
For more JMeter-side performance tips and tricks see JMeter Performance and Tuning Tips guide.