webtest comes in two versions, a command-line version (cltest) and a gui version (ltest).
Two modes of operation are supported:
- constant-load - the tester issues requests as fast as possible to keep the same number of requests active at all times.
- constant rate - the tester makes requests at a steady rate, regardless of how many are currently running
webtest can issue the same request with many different values of parameters, e.g., to test a search form with different terms. This can be valuable in testing cache performance.
webtest is suitable for testing many real-world web apps. However, it does run a bit slower than similar testers written in C or Java because of the higher overhead of tcl; as a result webtest has trouble at the high end of load testing (issuing more than around 250 requests per second, depending on your hardware). Similarly, its cpu usage is somewhat higher than tools like ab, to the point where it can adversely affect your test results if you are testing a server on the same machine. In either case, the result from using webtest will be a conservative answer about your server performance, which is arguably a good thing.