I'm new to jmeter, and I'm currently performing soak test using jp#gc ultimate thread group.The scenario is I want to perform the spike test within this soak test.So how can I perform it?
The img shows the scenario in jmeter
The above image shows the scenario. I want to perform spike test only in the jp#gc ultimate thread group.
Thanks in advance.
Your thread group details are not visible. Personally I would prefer Synchronizing Timer to produce spike load.
The timer pauses threads until specified amount is reached and releases them in the same moment of time.
Related
We're getting negative thread count in JMeter for active threads.
The test plan contains various Http Web Test Plan related components and samplers using Parallel Controller. This is creating problems for us in getting correct metrics as JMeter is emitting the same -ve values to the listeners for active threads. Any insights what might be wrong and how to fix this?
Here's the screenshot from the test plan while executing -
First of all don't run JMeter in GUI mode, it's only for tests development and/or debugging, when it comes to test execution you should run JMeter in command-line non-GUI mode
I don't think you should have Parallel Controller as the first parent sampler, the most obvious use case is simulating AJAX requests, concurrency should be set on Thread Group level
After setting the duration of JMeter, sometimes several threads will fail to stop. No requests will be found, and no errors will be reported. The interface service will not stop the last few threads even after the JMeter is shut down
You're violating probably the most important JMeter Best Practice:
GUI mode is only for tests development and debugging, when it comes to test execution you should be running it in command-line non-GUI mode and this is what JMeter says each time you launch it:
If you still want to know the reason of thread getting stuck - take a thread dump (if you can use the GUI still):
and inspect what this thread is doing and where/by what it's blocked. If you cannot use GUI the thread dump can be taken by command-line tools
More information on JMeter tuning for maximum performance: 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure
Using jmeter, I have 10000 users need to hit the server and to respond back with in 40 sec.
During execution (in distributed mode) only 600 users really hitting (Checked in db) in server.
But in AGGREGATE REPORT it shows all requests hits the server.
What is the issue behind this? why the number of requests hits the server isn't consistent between db and jmeter listener?
Probably your test configuration is a little bit wrong.
JMeter acts as follows:
JMeter starts all the threads (virtual users) within the bounds of ramp-up period specified in the Thread Group configuration
Each thread (virtual user) starts executing samplers upside down
When there are no more samplers to execute and no more loops to iterate the thread is being shut down.
You can check how many threads were actually active using Active Threads Over Time Listener or the same chart of the HTML Reporting Dashboard
So you may run into a situation when some samplers have already done their work and some haven't been yet started. Basically you need to provide enough loops to make sure all 10k threads will be up and running for the required test duration.
See JMeter Test Results: Why the Actual Users Number is Lower than Expected guide for more information.
We observed that while executing the below scenario, calls at the end of script execution are failing and they are counted as part of error %,
Scenario:
Number of threads : 100 (even for 50 , 150 200 users, only the calls which are shown at the end of results tree are failing)
Ramp up period : 5s
Scheduler duration : 600s
We also observed that though the sceduled time is for 10mins(600s), jmeter runs for 11mins. Is there any option in jmeter for a ramp-down period?
This may happen when JMeter forcibly terminates running threads, ideally that should not be happening and threads should be stopped gracefully.
The most possible reason is simply lack of resources as you are using JMeter in a not very correct way.
You should not use JMeter GUI for tests execution, GUI mode is only for tests development and debugging
You should not use any listeners during test execution. Run your test in non-GUI mode, store results into .jtl file and after test finishes either generate HTML Reporting Dashboard or open the results file with the listener of your choice, but do this after test completion, not during the test.
With regards to "ramp-down" period: there are some custom Thread Groups available via JMeter Plugins project like Stepping Thread Group or Ultimate Thread Group which allow you to set up arbitrary rampdown patterns:
I am running 24 Hr load test on jmeter with 3256 threads. But even after 28 hrs some of the threads keep running and does not get ramp down. There are several errors in the run.
Even when I choose to stop the threads,"Shutting down all the threads, please be patient" Pop up appears and stays forever and no threads are ramping down.
For your information:- Number of threads-3256; Ramp up period-300; Loop Count-192
Considering all the think/wait time in the script , scenario should run for 24Hrs.
How can I close all the threads forcefully.
There are following options available:
JMeter is listening to shutdown messages on port 4445. There are 2 scripts in /bin folder of your JMeter installation:
shutdown.cmd(sh) - send graceful shutdown request to all threads
stoptest.cmd(sh) - force stop threads
Use Test Action Sampler "Stop Now" option for "All Threads"
Use Beanshell Sampler with the following code:
SampleResult.setStopTestNow(true);
However in that way you can get lots of errors caused by force shutting down of test threads which will be in your test results.
Actually I think that behavior your're experiencing is being caused by lack of resources on your load generator (JMeter) side. Try following recommendations from JMeter Performance and Tuning Tips guide to see if it helps (you don't need to wait all 24h, it will be enough to wait till all threads are ramped up).
If adjusting JMeter parameters won't help it looks like that you'll need to consider distributed testing and generate the load from more than one host.