2

We are using the JMETER 5.2.1 tool from GUI, for our performance tests and this if my first time using it.

I would like to simulate a 24 hours run of our service, when I have 30,000 agents registered and each one send 10 queries a day (300,000 queries a day in total).

For that purpose, I have defined a Thread Group with the following configuration:

Number of Threads: 30,000

Ramp-up period: 40,000

Loop count: 10

Duration: 86,400 (24 hours)

For some reason the JMETER run finishes after 11 hours only! I don't understand why because as you can see I have set the Duration to be 24 hours.

Any suggestions?

Roy Leibovitz
  • 579
  • 5
  • 16

2 Answers2

1
  1. If you want your test to run for 24 hours - set Loop count at Thread Group level to Forever or to -1
  2. If you want to execute 300 000 queries in 24 hours you need to introduce a rate limiting on JMeter side to execute 208.4 requests per minute, it can be done using i.e. Constant Throughput Timer
  3. Don't use GUI to run JMeter tests as it might have very negative impact on test results, JMeter GUI is only for tests development and debugging, when it comes to test execution - go for command-line non-GUI mode
Dmitri T
  • 159,985
  • 5
  • 83
  • 133
  • So if I got it, I need to use Constant Throughput Timer in order to define it to execute 208.4 queries per minutes and set the Loop count to -1? This way I can't guarantee that each one of my 30,000 clients will send 10 queries, no? – Roy Leibovitz Mar 11 '20 at 13:11
1

If Loop Count is not -1 or Forever, duration will be min(Duration, Loop Count * iteration duration) according to Scheduler Configuration in JMeter GUI. In other words you did 10 Loops faster then 24h. So you can run your loop Forever and limit it by 24h - you did more loops or you can try to add delay to your loop to match 10 loops in 24h. Third option is 3rd party plugin Constant throughput timer.

I would redesign your test to 10 Threads, 300 Ramp-up, Loop Forever, Duration 24h and tweak delay in Loop to match (24*60*60)/300000=0.288tps Since I understand threads as Concurrent connections at the same time (not 24h as you do)

lojza
  • 1,823
  • 2
  • 13
  • 23
  • Thank you very much! The problem with your solution is that I need 30,000 threads in order to simulate 30,000 clients communicating with my service. Is there a way to define configure it this way? How the 3rd plugin can help me? – Roy Leibovitz Mar 11 '20 at 13:05
  • 1
    What do you want to test? Is it that your server is able to handle 0.288tps constant load 24h? – lojza Mar 11 '20 at 14:10
  • I want to test my server in 24 hours of work when it has 30,000 active clients when each one sends a request 10 times. – Roy Leibovitz Mar 11 '20 at 14:45