Jmeter might be your friend. I found it a bit weird to set up (I can flick you a setup doc if you like) but it works like a charm. Not sure if it hits most of your points, but it hits a few http://jakarta.apache.org/jmeter/ :) Paul