This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
stella /
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Sat Sep 05 10:46:44 -0700 2009 | |
| |
.gitmodules | Sat Jan 31 13:00:14 -0800 2009 | |
| |
CHANGES.txt | Wed Dec 09 12:50:14 -0800 2009 | |
| |
LICENSE.txt | Fri Sep 04 20:16:33 -0700 2009 | |
| |
README.rdoc | Mon Nov 30 18:39:40 -0800 2009 | |
| |
Rakefile | Wed Nov 25 09:20:50 -0800 2009 | |
| |
Rudyfile | Fri Oct 30 16:43:16 -0700 2009 | |
| |
bin/ | Wed Dec 09 12:50:14 -0800 2009 | |
| |
examples/ | Wed Dec 09 12:28:58 -0800 2009 | |
| |
lib/ | Wed Dec 09 12:51:21 -0800 2009 | |
| |
stella.gemspec | Wed Dec 09 12:51:21 -0800 2009 | |
| |
support/ | Wed Oct 28 21:30:11 -0700 2009 | |
| |
tryouts/ | Sat Oct 24 13:03:35 -0700 2009 | |
| |
vendor/ | Wed Dec 09 11:42:57 -0800 2009 |
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
- Delano Mandelbaum (solutious.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.
- Peter McCurdy for the feedback and bug fixes.
License
See LICENSE.txt







