Stress testing a web site with 100,000+ virtual users

It is not a typical load testing project when you need to create 100 thousand virtual users. More than half of all web load tests are conducted with just a thousand virtual users or less, because higher load is not actually anticipated on the target web site in production. Note that we are not talking about the number of users per day or hour. Those are concurrent users working with the web site simultaneously, in parallel.

At the same time a huge load mentioned in the title of this article is not a fantasy. Such tests are really required for web sites with growing audience and advanced client functionality. Imagine any web site that delivers customizable user-dependent content updating dynamically: stock quotes, online meetings and chats, monitoring tools, etc. When a user of such web application leaves an open browser page, it keeps refreshing every minute sending a repeating request to the web site. In such case a typical user session may last for hours resulting in a rather big number of concurrent sessions at any time moment.

Not every load testing tool can emulate such load. I am happy to say that now we can offer a product that does this really efficiently. We released it several days ago as a new load generating component for WAPT Pro. Its name speaks for itself: x64 Load Engine.

This new powerful extension can replace the previously used load agents for high capacity tests. It dramatically increases the estimated number of concurrent user sessions that can be produced per one system used in load generation. According to our tests, the average capacity is increased at least 5 times and the load of 10,000 virtual users is easily achieved using a single middle-level 64-bit server.

This number can be even bigger depending on the hardware configuration and the test options (such as virtual user profile length, the complexity of server response processing, the rate of requests within a session, etc.). On a high-end hardware the produced load can grow up to 35,000 users per system. This means that using only 3 producing servers it is possible to load test a web site with 100,000+ concurrent virtual users.

The x64 Load Engine can be installed on any system with 64 bit Windows OS starting from Windows XP. The product is available as a separate extension and not included in the standard WAPT Pro installation package, which continues to provide standard load agents suitable for lower capacity tests.

At the same time the transition from load agents to x64 Load Engines is very simple, because the engines can be managed from the WAPT Pro workplace component same way as agents. They provide much higher performance while presuming all the ease of use.

In fact, the functionality of the x64 Load Engine is identical to the functionality of the regular load agent. The only difference is the much higher performance achieved because of its native 64 bit architecture. You can setup the engines on several systems and use them concurrently to create greater test volume. The workplace component of WAPT Pro manages the work of the engines same way it does it with the load agents. Both agents and engines appear in the same list, where you can edit their properties and select the ones you want to use in the test. You can also search the local network for the available agents/engines and add any remote ones manually by their IP and port number.

So, should you need to run a really big stress test, we are happy to recommend WAPT Pro and x64 Load Engine at your service!

WAPT simulates complete user sessions. A session is first recorded as a sequence of HTTP requests. When the test is executed, many concurrent virtual users produce multiple copies of that session by sending the same sequence of requests to the web site.

Of course, each copy is not exactly the same. It can have some unique parameters, such as different user name/password, cookies, etc.

Hi,
Does WAPT simulate the parallel requests coming from a web page? I’ve seen that all HTTP requests are executed sequentially and the page response time is reported as cumulative time of all the requests. While, in actual the page response time is much lower, because the requests are executed in parallel. How do we simulate this in WAPT?
Thanks.

For each request WAPT measures response time that includes loading page elements and time required for the main page request only. If you want, you can emulate loading page elements over additional connections. To do this you can increase the number of connections per user in the profile properties. This will make each user open the corresponding number of concurrent connections to load page elements. This will improve the emulation of the real user activity. Note that additional connections will consume almost the same amount of virtual memory as additional users, so this is a very resource-consuming option. In other words, you will be able to generate smaller number of users with multiple connections using the same system.