As promised in my earlier post, here’s the description of my first completed project
The project’s goal were
a) To find the maximum number of concurrent users a web portal will be able to handle.
b) If the figure found above turned out to be less than the estimated load then also work out ways to resolve the situation.
I wrote a simple JAVA application to handle part a). Details for the same follow –
The application allowed setting up any number of page flows that users would hit [A page flow essentially defined a list of GET/POST requests to be sent to the server along with delays in between] These page-flows were defined with the help of their marketing people who were aware of typical user actions (based on analytics reports). Once the page flows are defined, the program allowed setting up the number of users that would be going through a page flow. This allowed them to simulate the actual usage scenario of their portal.
On starting the program, a thread would be created for each user and a configured page flow assigned to it. This thread on starting would hit send the HTTP GET/POST request, from the received HTML response would parse the resources (images, java scripts, style sheets etc) and then send GET requests for them – just the way a web browser would behave.
The application captured the response received for each URL for each thread and later at the end of the program generate a report that would contain the response time for each URL hit and a higher level summary.