Stella - 0.7 PREVIEW
Perform load tests on your web applications with beauty and brute strength.
Features
-
Realistic load simulation
-
Sophisticated response handling (with automatic HTML document parsing)
-
Dynamic variable replacement
PREVIEW NOTICE
This is an early preview of Stella. The following features are still under development (as of 2009-09-15):
-
Reporting of any kind.
-
File uploads.
-
Documentation.
Usage Example
# Verify a test plan is defined correctly
# by running a single user functional test.
$ stella verify -p examples/basic/plan.rb http://stellaaahhhh.com/
# Perform a load test
# using the same test plan.
$ stella load -p examples/basic/plan.rb http://stellaaahhhh.com/
Test Plan Example
Test plans are defined in the Ruby programming language. This makes it possible to define sophisticated logic to handle responses. They also typically contain more than one usecase which is important when simulating realistic load. In this example, 65% of virtual users will execute the first usecase and 35% will execute the second.
usecase 65, "Simple search" do
get "/", "Homepage" do
wait 1..5
response 200 do
status # => 200
headers['Content-Type'] # => ['text/html']
body # => <html>...
doc # => Nokigiri::HTML::Document
end
end
get "/search", "Search Results" do
wait 2..5
param :what => 'Big Al'
param :where => 'Toronto'
response 200 do
listing = doc.css('div.listing').first
set :lid, listing['id'].match(/(\d+)/)[0]
end
end
get "/listing/:lid" do # URIs can contain variables.
desc "Selected listing" # This one will be replaced by
wait 1..8 # the one stored in the previous
end # request.
end
usecase 35, "YAML API" do
resource :listing_ids, list('ids.csv')
get "/listing/:lid.yaml" do
desc "Select listing"
param :lid => random(:listing_ids)
response 200 do
repeat 5
end
end
end
See examples/ for more.
Installation
Get it in one of the following ways:
$ gem install stella
$ git clone git://github.com/solutious/stella.git
$ gem install solutious-stella --source http://gems.github.com
More Information
Credits
-
Delano Mandelbaum (solutious.com)
-
Threadify © Ara T Howard (codeforpeople.com/)
Thanks
-
Harm Aarts for the great test case and feedback!
-
Kalin Harvey for keeping me on track.
-
Dave L, the best intern money can’t buy.
License
See LICENSE.txt