Unless you are creating a very niche site then you will probably be expecting a reasonable number of visitors to your site.
As such, it would be prudent to check that it works for X number (where X is a number relevant for your context) of users.
One of the trickiest elements of testing for multi-user or even load testing your application is defining the end usage patterns and expected load.
For example, some sites may be used everyday by only a handful of people, but at the weekends visited by many thousand.
There is also the added complexity of mapping out the end user usage patterns. Are all end users going to perform the same actions each and every time they visit your site, and all at the same time?
One of the simplest methods for starting your journey to multi-user testing and then load/performance testing is to use the simple concept of One, Two and Many (or other variants of these numbers)
I personally like the One, Two and Many because it’s easy to explain and it’s also provided me with exceptional value when used. I’ve used it for testing as well as proving automated scripts.
The theory goes like this:
You test with one user to make sure the basics work at a functional level.
You then test with two concurrent users to check that there are no basic deadlock issues and that the application/site allows multi-user activity at a basic level. You’d be surprised at how many issues this test could find. The amazing thing about this sort of test is that it’s quite simple and doesn’t need you to spend months building a giant automation framework to find the basics don’t work.
You then test with many users. The many being whatever value you deem to be right for your goal. That could be ten, twenty or maybe even two million. The choice is yours.
The reason for starting low and then jumping to big numbers is that I’ve seen a few examples where expensive infrastructure and test code was prepared for load testing, only to find the product wouldn’t even allow two users to log in at the same time.
I like rapid feedback so I personally perform the “One” and “Two” manually, maybe with some support by simple automation like Selenium or even ignoring the UI and diving in at the web service level.
For the bigger loads there are countless options, of which I’m not going to explore here.
My personal favourite at the time of writing this book is jMeter, simply because it’s free, easy to get started with and easy to extend.
Saying that, you could opt for any number of solutions, free to very expensive, locally installed or hosted; maybe even a complete managed service.
Whatever your decision never lose site of what your goals are.
Performance and Load testing can become complicated, unwieldy and expensive as you explore any number of variables unless you keep focused of what you’re goals and ambitions are.
Do a proof of concept or trial run with free or “free to try” tools before opting to buy any product for Load Testing.
Tool quality and suitability can vary greatly.
A list of testing tools – https://en.wikipedia.org/wiki/Load_testing
jMeter – http://jmeter.apache.org/
If you want to talk Testing – catch me later this year at EuroSTAR conference.