= Stella - 0.7 PREVIEW Perform load tests on your web applications with beauty and brute strength. NOTE: 0.7 release is not compatible with previous releases! == Features * Realistic load simulation * Sophisticated response handling (with automatic HTML document parsing) * Dynamic variable replacement == PREVIEW NOTICE This is an early preview of Stella. It's still missing the following features (as of 2009-09-15): * Reporting of any kind. * Documentation. * File uploads. == 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/ # Preview a test plan $ stella preview -p examples/basic/plan.rb == 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 # => ... 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 * Homepage[http://solutious.com/projects/stella] * Codes[http://github.com/solutious/stella] * RDocs[http://solutious.com/stella] * Stellaaahhhh[http://www.youtube.com/watch?v=jHHprvyl-Hc] == Credits * Delano Mandelbaum (http://solutious.com) * Threadify (C) Ara T Howard (http://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