Thursday, June 01, 2006

Free to a Good Home: RWB

rwb (the Ruby Web Bench) is a great idea that needs some work. This is probably not a project for a first timer, as it's going to need some time and effort to really shine.

rwb is intended to provide a tool for performing capacity or functional tests against a website. It differs from existing tools (like ab or httperf) in that it's extremely configurable. You can write testing scripts that define weighted lists of URLs and view the results in a number of ways.

The current implementation has some problems though, which will need to be cleaned up:

  • Overall Performance: rwb is a multithreaded app. It should really be made into a multiprocess app, using DRb to communicate between processes.
  • HTTP Performance: rwb uses the native ruby http client, this adds some latency into the request cycle as compared to a C based client.
  • HTTP Request Reporting Detail: rwb can only report the total download time of a request. It should be able to split out the various stages of the request.
  • Request Configuration: rwb needs to be (even) more flexible in the way you can define requests.

I think that pulling in the http client implementation from httperf would solve two of the problems above (it's GPLed, so it's available). The others will require some Ruby hacking.

If you're interested in taking over rwb, post a comment below. Tell me about your thoughts, and let me know why you think you're the right person for the job. In the right hands, I think rwb can really become something special.

3 comments:

Matt Todd said...

I'm still a beginner, but I'd still like to take a look at the codebase and take my hand at it. Experience is the best teacher, so if nothing else I'd like to poke around with it to get better.

M.T.

pate said...

Matt,
Why don't you grab the cvs tree (either a tarball or by checking it out. If you join the rwb mailing list, you can ask questions there. If after a bit of poking around you're ready for us (the existing developers) to add the developer bit to your user account, we can do that. A while after that, we can talk about making you the maintainer, if you're interested.

Ed Borasky said...

I might like to take this over. I do performance testing for a living, but I'm a relative Ruby newcomer. Is it on RubyForge? I have a couple of projects there -- cougar and vgrails