How to best design and create a load test on a web application?
I'm new to testing and have been asked to create a load test for a web application. My group's lead asked the test to just browse the application for hours with a load of 100 users. That's the only spec he has given to me, and I have my basic test doing that with the tool I'm using, Soasta Cloud Test
Now is there anything I should specifically test? A lot of the test results' details in Cloud Test are going over my head and I have no idea what to even look for in these results.
I do realize this is a generic question, but am willing to provide as much detail as possible given the right questions.
irl last edited by user
Assuming the web application accesses a server then the purpose of many web performance tests is to see how the server behaves under load and whether high loads cause unwanted delays in responding to user activity. Also to see whether the system has headroom while coping with that load.
One part of the test could be to see that 95% of all web pages are loaded within (say) 3 seconds and 99% within 7 seconds. Find the design goals and non functional requirements of the web site to get the actual values.
Another part of the test could be to see whether page load times increase significantly as the load increases. For your system you might run with 20 users for 20 minutes, increase to 40 users and run for another 20 minutes. Then keep increasing at the same rate until you get to (perhaps) 1.5 times your expected maximum load.
Another test might simulate 9am when all you users start work and login. The user load changes from near zero to near maximum in five minutes or less. How does the system behave with such a dramatic change of load. You might extend this test to simulate an 11am coffee break, where everyone stops work for 10 minutes then resumes work.
Another common test is a long duration steady load. Perhaps at a high load but not the peak expected load.
During each of the various tests you should monitor the various computers that together make the servers in the system; eg database servers, web servers, application servers, load balancing duplicates, etc. You might look for CPUs that are too busy, memory that is too low, excessive paging, over used network links, SQL (or database) transaction rates; and many others. Generally you are looking to see whether any parts of the system are overloaded or approaching overload. The tests can only use a small portion of the many possible transactions a user can do, so real load might push any busy parts of the system too far.