public
Description: Blame Stella for breaking your web applications.
Homepage: http://solutious.com/projects/stella/
Clone URL: git://github.com/solutious/stella.git
stella /
name age message
file .gitignore Sat Sep 05 10:46:44 -0700 2009 Good work! [delano]
file .gitmodules Sat Jan 31 13:00:14 -0800 2009 removed drydock from vendor [delano]
file CHANGES.txt Wed Dec 09 12:50:14 -0800 2009 FIXED: Stella::Client ID was changing between r... [delano]
file LICENSE.txt Fri Sep 04 20:16:33 -0700 2009 Initial 0.7 [delano]
file README.rdoc Mon Nov 30 18:39:40 -0800 2009 Updated readme [delano]
file Rakefile Wed Nov 25 09:20:50 -0800 2009 Added test task [delano]
file Rudyfile Fri Oct 30 16:43:16 -0700 2009 Release 0.7.3 (Arrival rate) [delano]
directory bin/ Wed Dec 09 12:50:14 -0800 2009 FIXED: Stella::Client ID was changing between r... [delano]
directory examples/ Wed Dec 09 12:28:58 -0800 2009 FIXED: Request timeouts shold count towards fai... [delano]
directory lib/ Wed Dec 09 12:51:21 -0800 2009 Release 0.7.6.007 (HTTP auth fix/timeouts) [delano]
file stella.gemspec Wed Dec 09 12:51:21 -0800 2009 Release 0.7.6.007 (HTTP auth fix/timeouts) [delano]
directory support/ Wed Oct 28 21:30:11 -0700 2009 Cleaned sleeper [delano]
directory tryouts/ Sat Oct 24 13:03:35 -0700 2009 Response blocks (if defined) are responsible fo... [delano]
directory vendor/ Wed Dec 09 11:42:57 -0800 2009 Don't remove trailing slash [delano]
README.rdoc

Stella - 0.7 PREVIEW

Blame Stella for breaking your web applications.

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/

    # Generate load using the same test plan.
    $ stella generate -p examples/basic/plan.rb -c 50 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  => 'Sarsaparilla'
        param :where => 'Lexington'
        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

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.
  • Peter McCurdy for the feedback and bug fixes.

License

See LICENSE.txt