My team has just developed a website for a client and wants to test that it'll work under the expected usage for 50 simultaneous users. So the plan is to write a test program that will act as 50 simultaneous users. We need this test program to be able to:
Be logged in with a cookie. Our session ids are not embedded in our URLs and we don't want them to be.
Submit a few forms rather than just clicking on links.
Measure the response time of every page and keep statistics on every page; average, best, and worst load times would be nice.
Wait a realistic amount of time between actions.
I don't need to worry about these clients doing anything with Javascript; our site only uses a little Javascript and the clients should be able to do almost everything without it.
So before we try to build our own software for doing this, is there something out there which would meet some or all of these needs? A Python solution would be ideal, but we'll take anything, so long as it's free. (We have a budget for programmer time but no budget for buying software, so it wouldn't matter how money we'd save to buy a COTS product.)
EDIT: I've gotten several great suggestions below. Watir looks like the easiest and most elegant solution. Unfortunately, all of the solutions seem to require that a client hits a pre-specified series of webpages in a specific order. What I'd like is something that clicks on random links and submits random forms to simulate a bunch of users clicking on a bunch of links. Nothing so far seems to make this easy, although Watir comes the closest.