Jmeter: Ultimate Thread Group - Test finishes before it should - jmeter

I am using 'Ultimate thread Group' scenarios for each of my 7 scripts/scenarios (each thread group having different number of users). For each of them, i have given the same 1800s as ramp-up and 3600s for steady-state and 90s for ramp-down.
I expect the test to run for about 1.5 hours whereas it finishes in 55min. Any suggestions please?
Thanks,
N

You can check jmeter.log file, it contains the reason for the ending each and every thread.
I can think of the following possible reasons for premature ending the test and none of them is specific to the Ultimate Thread Group:
You have chosen something other than "Continue" or "Start Next Thread Loop" under "Action to be taken after a Sampler error":
You have CSV Data Set Config which is set up to stop thread at the end of the CSV file and you don't have sufficient amount of test data
You're stopping the tread/test somewhere using Flow Control Action sampler
Your test terminates as the result of an OutOfMemory error

Related

JMeter - Control the Iteration count with in a Thread Group which has Multi Actions

No.Of Iterations in a thread Group is : 3
Thread Group Name from the below screenshot is : TCByEmployee
Thread Group performs various steps using If Controller
I want to Achieve "Loop Controller-TCbyEmployee-Login by Employees"
& "If Controller-TCbyEmployee-Login by DH" should start Next Iterations once it's completes "If Controller--TCbyEmployee-Login by PA" Iteration 1
Now the issue is : "Loop Controller-TCbyEmployee-Login by Employees"
& "If Controller-TCbyEmployee-Login by DH" continues the up to Iteration 3 before "If Controller--TCbyEmployee-Login by PA" begins
Please see the below screenshots
Your question in its current form doesn't make any sense, you need to either re-phrase it or provide minimal reproducible example
So far I can only inform you that:
Once started each JMeter thread (virtual user) starts executing Samplers upside down (or according to the Logic Controllers)
When thread executes last Sampler in the Thread Group it starts over from the beginning
If there are no more Samplers to execute or loops to iterate the Thread is being shut down.
If you're looking for a way to implement a GOTO statement - take a look at Test Fragments and Module Controller, this way you can change the flow from upside down to some custom
Also be aware that threads (virtual users) are absolutely independent and if you think that the execution order is broken might mean that another user executed another sampler at that moment
And last but not the least, don't run your test in GUI mode

What jmeter configuration I should use when running load test of 25 threads

I need to run a load test of 25 threads, what will be the most efficient configuration to use? (ramp-up period....). I ran the load test with the below configuration and some of the threads failed but pass if I just ran the script individually.
Your configuration will mean that:
JMeter start with 1 thread and add another thread each 4 seconds
Once started each thread will begin to execute Samplers upside down (or according to the logic controllers)
When the thread executes the last sampler it will be shut down
When the last thread executes the last sampler the test ends
Depending on the number of samplers and application response time you may or may not achieve 25 users concurrency, you might want to check the actual number of concurrent users using Active Threads Over Time listener
If you want to make sure to have 25 online users set "Loop Count" to Infinite and "Specify Thread Lifetime" duration to be more than your ramp-up period. See JMeter Test Results: Why the Actual Users Number is Lower than Expected article for more details.
With regards to the failures - we cannot state anything meaningful without seeing request and response details, make sure to save them using i.e. View Results Tree listener and inspect response body for the failed requests

Number of execution samples

i am running a simple test with 10 users for 5 mins. my test has a single thread and different transactions within it. By the end of the test, there is a different number of samples for each transaction. Is there a way or a setting so that we don't start any new thread when the test is finishing, i tried ultimate thread group plugin with ramp down , hoping to see same samples for all requests but it didn't happen. Not sure if that is even possible.
Each JMeter thread (virtual user) executes Samplers upside down (or according to the Logic Controllers)
When you're defining test duration it might be the case that some virtual users are somewhere in the "middle" of the Samplers and they stop when they receive shutdown signal.
It means that the very first sampler will be executed with 100% of users and for further samplers the chance of getting executed becomes lower and lower.
The only way to have the same number of Sample Results for all Samplers is using normal JMeter Thread Group and providing fixed amount of loops.
Given above setup you will have strictly 80 executions of each and every Sampler in the Test Plan
More information: Getting Started with JMeter - A Basic Tutorial

How does multiple thread groups execute in jmeter

Lets say we have 2 thread groups, one has 10 threads, another one has 30 threads. I have unchecked "run thread group consecutively". In table results, we see response time of second thread group is more than first threadgroup users.
When threadgroups are arranged other way, it shows reverse. So, whichever is second thread group, its user showing response time more than what is there in first thread group.
When you unchecked the "run thread group consecutively", then both the thread group runs in parallel. Now, based on the number of thread they will send the requests. In your scenario, 2nd thread group has created 30 threads and start sending the request. Now, based on,after how much time the response will come, it is listed in the view result. So, you thread group have more thread and may be getting response faster then thread 1. But, thread 1 is also going to be listed in the view results as shown below;-
Option is unchecked, so parallel running:-
So,in short, if "run thread group consecutively" option is unchecked, thread groups will run in parallel else sequential.
Option is checked, so sequential running:-
Hope this helps.
Only one explanation comes to my mind:
You're running your test in GUI mode
You're running it in GUI mode with Listeners enabled
If above assumptions are correct JMeter is simply lacking resources in order to kick off that many threads and given JMeter is not capable of sending requests fast enough you're getting "false negative" results as JMeter spends time in GC trying to free up some Heap space in order to be able to operate.
So:
Make sure to run your test in command-line non-GUI mode
Disable all the Listeners, they don't add any value, only consume valuable resources
Follow recommendations from the 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure in order to configure JMeter for maximum performance

JMeter Include controller

First script
Thread-1
|--Http Sampler
|--Include Controller <second script>
Second script
TestPlan
|--Thread-2
| |--Http Sampler
|--Thread-3
|--Http Sampler
I run the first script which does few steps and uses include controller to call the next script. I need the second script Thread groups (Thread-2 and Thread-3) run simultaneously and not consecutively.
I understand the thread run concurrently by default. But when I execute my code i see:
Thread-1 successful
Thread-2 successful
Execution never gets to thread-3
Can you please help me? I want to know how to run the second script's thread group simultaneously?
You are misusing IncludeController, you need to use Test Fragment element in the included test plan (second script)
First and second script are separate test plans.
First Test Plan contains one thread, which contains a include controller to call the second script or the second Test plan
Second test plan contains 2 thread groups
Solution:
In both the Test Plan untick "Run threads consecutively"
In the second test plan tick "Delayed thread creation" - this means that the memory requirements are proportional to the number of concurrent active threads, rather than the total thread count
Threads in JMeter run simultaneously by default.
Understand the difference between concurrency and simultaneous. Here is a helpful link: How to generate Concurrent User load in Jmeter

Resources