Your e-Business Quality Partner eValid™ -- Automated Web Quality Solution
Browser-Based, Client-Side, Functional Testing & Validation,
Load & Performance Tuning, Page Timing, Website Analysis,
and Rich Internet Application Monitoring.

Notes On Simulating Many Users
eValid Home

Note: So that there is no confusion in what follows: k = 1000; K = 1024

Introduction
One of the most commonly heard questions in discussions about load testing is: How can I simulate 1,000 users using my WebSite? 5,000 users? 10,000 users? N thousand simultaneous users?

This question is often asked by harried IT managers who want assurance that they have enough computer power in their servers to meet the highest expected load. Reasonable enough, certainly.

There are several ways to look at this. Let's work the numbers out for "5000 users" and see what that means.

One User Running in Real Time [Assumptions; The Baseline]
To get really accurate data we have to understand precisely what it means when there is "One User on the WebSite".

Typically, our One User will look at 1 URL per minute.

A typical Web URL is ~10kBytes and probably takes a short time to load. At 56.6 kbps our 10 kByte = 80 kbit file takes ~1.6 seconds to download if the modem delivers an effective rate of 50 kbps. So there are 58.4 seconds of wait and think time between URL downloads. Let's be conservative and say that the 1.6 seconds is not realistic, and suppose that it takes 6.0 secs.

Overall, that's 10% of the total time available when the browser is doing something. The duty cycle for our One User is thus 10%.

If the ~1.6 sec actually takes 3.0 sec, then the duty cycle is 5%.

These are a pretty typical amounts of time experienced by a user on a fast dial-up modem. But to be conservative, we'll stick with a 10% duty cycle throughout.

One User Running Continuously with a 1.0 Delay Multiplier
eValid can easily simulate our One User running continuously.

Note that a session that involves downloading only a 10kByte file each minute is not a particularly heavy load on the communications channel. If it takes 6 seconds to download 10kBtyes = 80 kbits, this is 80 kbits/6 = 13.333 kbps.

A 56.6 kbps modem typically delivers an actual 50 kbps, so this is only about 26% of the available bandwidth.

Summary of Scenario Parameters
URLs/Pages per Second 1/60
kBytes per second 10/60
Duty Cycle 100%
Equivalent Users 1

One User Running Continuously With A Delay Multiplier of 0.0
Now the 60-second-long test, with a 5 second wait, runs in 6.0 sec but except for the fact that there is no wait time, the channel is only being asked to deliver at the same rate as before, 13.333 kbps -- but it is now running continuously.

The claim here is that in this case our One User running continuously with a delay multiplier of 0.0 -- who is now running without any think time -- is really generating the load that would be generated by 10 users. This is because the duty cycle is 10% and 1/0.1 = 10.

Summary of Scenario Parameters
URLs/Pages per Second 6/60
kBytes per second 100/60
Duty Cycle 10%
Equivalent Users 10

If the duty cycle was 20%, then our One User running continuously with a delay multiplier of 0.0 would impose a load of 5 One User's at the same time.

One User Running Continuously With A Delay Multiplier of 0.0, with 100 Replications
Now, assume that our One User script is run from an eValid LoadTest scenario script a total of 100 times, in parallel. In doing this you also have to:

Now the scenario looks like the following:

Summary of Scenario Parameters
URLs/Pages per Second 600/60 = 10
kBytes per second 10,000/60 = 166
Duty Cycle 10%
Equivalent Users 1000