khaines@enigo.com wrote:
What I would like, and what Mat wants, I think, have a great deal of overlap.
To repeat some of what I said in an earlier post, I'd like to.
1) Hit the homepage of a site.
2) Go to a random URL on the site.
Repeat 2-5 times.
3) Go to the fund information page.
4 Click through to the distributions display.
5) Randomly select 1-4 fund information links.
Repeat 100000 times, collecting timing information, failure information, etc....
Or, even more ambitiously:
1) Hit the homepage of a site.
2) Follow the link to the advisor login page.
3) Login (an action that requires sending a form response, and receiving a cookie in response that will be sent on further requests).
4) View fund information for some random funds.
5) Go into advisor tools and feed some numbers into a calculator.
6) Goto the logout link.
If I can create scripts that define actions like those outlined above, which would can simulate expected real world usage over a period of days, or can simulate hordes of users in a more realistic manner than the ab/httperf mechanism of hammering a single URL, it would be very valuable.
I don't need to drive an actual IE or Firefox session, and for this sort of thing that's impractical.
What you are describing is a load testing tool. I work with one such tool, Segue (now Borland) SilkPerformer. Another well-known one is Mercury LoadRunner. As far as I know, there are no open source tools that have the flexibility in script *capture* these tools have. Essentially, you fire up a script recorder, it fires up a browser, you exercise your app, you close the recorder and it generates a script. There are also tools for load test monitoring, server monitoring and performance/bottleneck analysis. These things are expensive, though.
The closest thing I've found in the open source world is jMeter. But as far as I know, you have to code your own scripts, your own benchmarks and your own performance analysis tools with jMeter. It's a tradeoff of money versus effort. Quite frankly, I'd recommend spending the money. Email me off-line if you want the details.
Now if someone wants to *write* a full-featured web application load testing tool -- and I mean *full-featured* -- in Ruby and open source it, allow me to encourage them. I sure as heck don't have the time to do it. 
···
--
M. Edward (Ed) Borasky, FBG, AB, PTA, PGS, MS, MNLP, NST, ACMC(P)
http://borasky-research.blogspot.com/
If God had meant for carrots to be eaten cooked, He would have given rabbits fire.