This is what the development manager wants set up:
1% Concurrency ~ 20 virtual users
90% Contributors for ~ 18 running contributor tasks
10% Group Admins ~ 3 running group tasks
Ramp users at 1 per minute.
Run all 21 users for an hour (after ramp) to see how the system performs.
How do I set this up in Jmeter? I assume that the users are my thread and ramp at 1 per minute means that I enter 60 seconds. I would have different thread groups for each of the task types (contributor, manager/admin). Just not sure how I allow it to run for an hour after the ramp. Is that with using the scheduler??
There scheduler option for the thread group. You can try this:
I hope that can help you.
Related
How to setup delay in jmeter each user Thread Group.
I am trying to run my script Thread group (users) 10,20,30 and 40 and having a delay of 2 min each in them.
How to setup these things in jmeter?
If you want to test your application with 10 users and each user will come after 2 minute delay than pass ramp up as 1200 sec in thread group
The best controller is "jp#gc - Stepping Thread Group". Why it's the best one is, If you use JMeter "Thread Group", we need to change the "Ramp-Up Period" depending on the Threads.
10 User, wee need "Ramp-Up Period" as 20 (1 users for 2 seconds =20/10) to meet you requirements .
20 user, wee need "Ramp-Up Period" as 40 (1 users for 2 seconds =40/20) to meet you requirements .
........etc
If you use "jp#gc - Stepping Thread Group" , we no need to change the "Ramp-Up Period" depending on Thread count.
Just mention "Next, add" :1 threads every 2 seconds,"jp#gc - Stepping Thread Group" will take care Ramp-up irrespective of Thread Count.
You can use Stepping Thread to make your load testing, which helps you to simulate as an apllication used in real time
Just add Constant Timer to your thread group. That's how it is described: "If you want to have each thread pause for the same amount of time between requests, use this timer.".
And if you want to reproduce a special case when you run 30 threads then make a break for 2 mins before next 40 users, then enable "Run thread groups consecutively" option in your test plan settings (top-level element) and add thread with only constant timer between them.
For example if you want to test 40 uesr test with rampup of 10 users.
Each user will take 2 min to rampup. We can use following configuration.
I need in Jmeter increase a group of user. For example, increase 10 users every 20 seconds.
Somebody knows how to do that ?
Thanks in advance.
There are 2 ways to achieve that,
If you want to test with total 100 users with 10 users coming up in every 20 seconds then you can set your ramp up as 200 seconds
Ramp up : 200 seconds
Total users : 100
This will start 10 users every 20 seconds which you need. (In this no external plugin is required)
Use stepping thread group which allows similar functionality. you can get from Stepping Thread group - JMeter plugins
Check http://jmeter-plugins.org/wiki/SteppingThreadGroup/.
You have to install http://jmeter-plugins.org/downloads/file/JMeterPlugins-Standard-1.2.0.zip for that.
Is that possible to simulate 1000 to 10000 user to jmeter?
If so how?
in 1 thread group only test 1k user:
Thread user = 1000,
Ramp up = 10 ,is this means it will test 1000 user in 10sec?,
Loopcount = 1, is there a disadvantage if I put 10 here ,is this means 1000x10 user = it will simulate 10k user?
Is 1 thread group can simulate 1000 concurrent user?
I could have written it as comment, but it went out of characters.
definitions given by #Quality-Expert are correct but his understanding of your test setup is wrong.
10 loop count doesnt mean 1000*10
It means at a given moment only 1000 concurrent users will be present but they will perform same action 10 times. It doesn't mean 10000 users.
Rampup is 10 doesnt mean 1000 users for 10 seconds
It means 100 users will come online in 1 second and next 100 users will online in next second i.e. in 2 seconds 200 users will come online and this is how 1000 users will come online in 10 seconds.
If you dont provide any test duration test will end their itself, it wont continue after threads have finished their task. If you want to load test with 1000 users then provide some test duration i.e. 10 mintues. Thus test will run with 1000 concurrent users for 10 min. Rampup is just warm up time for system under load test so that it wont face sudden load of 1000 users.
About 10000 load, use need to use distributed set of machines/client of Jmeter which will generate that load or use cloud load testing tools.
Number of Threads- The maximum number of users you want to run.
Ramp-Up Period - Defines how long it takes for JMeter to ramp up from zero users to X number of threads. It is in terms of seconds.
Loop Count - Defines how many times you want each user to run your script.
Other thing is that No. of user depends on your machine CPU , RAM , Physical memory. As far as I know using normal system you can user 250-500 max. users.
If you want to do testing like 1k,10k users then you will have to use cloud systems like Neoload.
As per your given example , you are right about if you put thread user = 1000 & ramp up = 10 then it will run test till 10 seconds for 1000 users.
Let me know if you have still any confusion.
Answer for the above question in below screen, in Jmeter manual its different which says threads/ramp-up period= user per seconds
I have concerns about the duration of executing JMeter Test Scenario.
In fact, if we execute a manual test with 1 user in 1 hour, we will find the same duration or little more with 3 user.
But, with JMeter test the duration with 1 user will be multiplied by the number of users.
During my scripting with this tool, I've noticed that JMeter always wait for the response of the request to pass to another request. It's like we have 1 user doing the work of multiple users.
Does any body have explanations about this issue?
Can we configure JMeter to perform like we have x users working in // ?
Depends how you are simulating users..
Each thread will wait for a response, but users are represented by different threads, and threads do not wait for each other to complete samples, they are independent.
If you are using threads in thread group to represent users (which is the intended usage), the threads will start concurrently and run independently, so you should see the 3 users complete in an hour, as with manual tests. If this is not happening, then you should check the resources used on the client running jmeter during single thread and multi thread runs. Or perhaps the bottleneck may be in the transport (ie bandwidth). All you have determined so far is that the bottleneck is prior to the server, you need to determine where it is.
It is also possible you have created a thread group for each simulated user. If this is the case you can set the groups to run consecutive or concurrent. The setting for this is on the Test Plan element at the very top of the tree. You want concurrent, so untick 'Run Thread Groups Consecutively'.
So it comes down to how you are simulating users.
In ideal world if you test your site with 1 user all set of actions completes in 1 hour. If you add another 100 users - still one hour, 1000 users - 1 hour.
In real world server response time increases with the number of concurrent threads. But it isn't something like
1 user - average response time 10ms
2 users - 20 ms
3 users - 30 ms
But
1 user - 10 ms
2 users - 10 ms
3 users - 10 ms
10 users - 11 ms
The whole idea of the performance testing is to determine the upper limit of server load and identify bottlenecks and issues which happen under the load so you could state something like: using this hardware and this configuration the application is capable of serving 500 concurrent users without serious delays. In case of 1000 users response time will be more than 15 seconds.
In regards to threads, JMeter thread starts, executes samples one by one for defined amount of loops and exits. It is applicable for each thread which are independent. Basic throughput control can be done via ramp-up and loops count (see Thread Group documentation on details)
More advanced load scenario definition can be done using following Test Elements:
Ultimate Thread Group - which provides easy visual way of defining ramp-up, ramp-down and time to hold the load
Constant Throughput Timer - to set desired load rate in requests per minute
Synchronizing Timer - to pause all the test threads and release them at the same moment to produce a "spike"
I am new to jmeter, I want to create a report, I have following doubts:
I want to find out the maximum number of users that can be given in a thread for ramp-up time 1sec?
Ex: 5 simple Http Request
no of user : ?
Ramp up time = 1
Loop=1
How to set a proper ramp-up time depending on the number of user in a thread?
Ex: 5 simple Http Request
no of user : 100
Ramp up time = ?
Loop=1
I tried different combinations of ramp-up and number of users considering through put , but the results varies and not able to find out a relation with the ramp-up time and the number of users.
Please help to find a solution for it.
Thanks!
Ramp-up period is the time required for all threads representing virtual users to start.
JMeter starts with 1 user and kicks off another thread so all threads will start in ramp-up period time slot i.e.
10 users, 10 seconds ramp-up - start with 1 user, each second 1 user added
10 users, 20 seconds ramp-up - start with 1 user, each 2 seconds 1 user added
100 users, 50 seconds ramp-up - start with 1 user, each second 2 users added
Keep in mind that if the thread has finished its job and there are no loops defined it'll shut down. For JMeter greenhorns it's better to use Ultimate Thread Group (available via plugin) which provides easy-understandable and configurable load pattern definition.
Depending on what you're trying to achieve you can also use the following test elements:
Synchronizing Timer - to hold the threads until specified number will be reached and release them at the same moment
Constant Throughput Timer - to specify exact load in requests-per-second.
Hope this helps.