README.rdoc

trample

Trample is a flexible load simulation tool.

Most load sim tools make requests to a static list of urls. They spawn n
threads and make requests to the urls on the list in succession, in each
thread. Unfortunately, though, if your applicaition makes use of any kind
of caching (including your database's internal caching facilities),
this kind of load simulation is unrealistic.

The data required to serve a single set of urls is likely to fit nicely in
the database server's cache (even on a small server). So, having a
single user hammer a finite set of pages will make your application look
much faster than it really is.

Trample allows you to provide parameter values inside of a block (a lambda
function, for non-rubyists). The block is executed each time the parameters
are needed. So, if you use randomization in the block, you should
(theoretically) get different values every time.

That way, you can have trample log in as several different users and
request different data in each session.

How To

Trample uses a ruby DSL for configuration.

Trample.configure do
concurrency 5
iterations 10
login do
post "http://yoursite.com/login" do
{:username => User.random.username, :password => "swordfish"}
end
end
get "http://yoursite.com/somewhere"
post "http://yoursite.com/something" do
{:a_parameter => "a value"}
end
get "http://yoursite.com/someresources/:id" do
{:id => SomeResource.random.id}
end
end

The above configuration will start 5 (concurrency) sessions by logging in
as a random user at the url in the login block. Then, it'll hit the two
urls underneath it 10 (iterations) times during each session.