0
votes

I am load testing RESTful API of a mobile app with an estimated 5,000 users.

Although all 5,000 users are not expected to login and use the mobile app simultaneously, I plan to test that scenario.

From the information available online, I have seen that usually, only a handful number of users are used to test using multiple thread group and/or reducing the ramp-up period (thereby increasing concurrency). However in my case, each time the user logs in, a new authtoken is generated. Therefore, if the same user is logged in concurrently (in jmeter), one of them fail to log in.

In such a scenario, do I "have" to create 5,000 users to be able to test them using the app concurrently, or is there another way.

Thanks for the help!

3

3 Answers

1
votes

If your test scenario is to simulate 5000 users and 2 users having the same username cannot be logged in, you will have to create 5000 users in your system and simulate them all using JMeter. In that case consider following recommendations from JMeter Performance and Tuning Tips guide

However this is not something usually required. Let's imagine that you have 5000 users online. It doesn't necessarily mean that all 5000 will send simultaneous requests. Real life users need to "think" some time before doing next action. Besides you need to consider time for page to load as well. For example:

  • each of 5000 users thinks 15 seconds between operations
  • page load time is 5 seconds
  • so individual user will execute 60 / (15 + 5) = 3 requests per minute
  • for 5000 users it will be 5000 * 3 = 15000 requests per minute
  • 15000 requests per minute = 250 requests per second.

So you should be able to simulate 5000 online users using only 250 concurrent unique virtual users. You can configure JMeter to send exact 250 requests per second using Constant Throughput Timer

0
votes

You want concurrent user at one particular url or entire usecase?.In case its URL synchronizing timer might help you

0
votes

If you want your test to be legit you need the same amount of dummy user in the database as the requests.

Dmitri T is right about the figures.

In the end 250 request would require 250 dummy users.