stella 0.8.8.001 → 2.0.1.001
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.txt +9 -1
- data/Gemfile +19 -0
- data/Gemfile.lock +50 -0
- data/README.md +5 -79
- data/Rakefile +10 -7
- data/Rudyfile +1 -1
- data/TODO +31 -0
- data/VERSION.yml +3 -4
- data/bin/stella +23 -81
- data/certs/README.txt +17 -0
- data/certs/cacerts.pem +1529 -0
- data/certs/gd-class2-root.crt +24 -0
- data/certs/gd_bundle.crt +76 -0
- data/certs/gd_intermediate.crt +29 -0
- data/certs/startssl-ca.pem +44 -0
- data/certs/startssl-sub.class1.server.ca.pem +36 -0
- data/certs/stella-master.crt +1738 -0
- data/lib/stella.rb +191 -123
- data/lib/stella/cli.rb +47 -67
- data/lib/stella/client.rb +424 -360
- data/lib/stella/core_ext.rb +527 -0
- data/lib/stella/engine.rb +126 -419
- data/lib/stella/report.rb +391 -0
- data/lib/stella/testplan.rb +432 -306
- data/lib/stella/utils.rb +227 -2
- data/stella.gemspec +56 -55
- data/try/00_basics_try.rb +29 -0
- data/try/01_selectable_try.rb +25 -0
- data/try/09_utils_try.rb +67 -0
- data/try/10_stella_object_try.rb +49 -0
- data/try/40_report_try.rb +133 -0
- data/try/90_class_syntax_try.rb +13 -0
- data/try/emhttp.rb +62 -0
- data/try/rubyroute.rb +70 -0
- data/try/support/file.bmp +0 -0
- data/try/support/file.gif +0 -0
- data/try/support/file.ico +0 -0
- data/try/support/file.jpeg +0 -0
- data/try/support/file.jpg +0 -0
- data/try/support/file.png +0 -0
- data/try/traceviz.rb +60 -0
- data/vendor/httpclient-2.1.5.2/httpclient/session.rb +5 -2
- metadata +81 -53
- data/examples/cookies/plan.rb +0 -49
- data/examples/csvdata/plan.rb +0 -32
- data/examples/csvdata/search_terms.csv +0 -14
- data/examples/dynamic/plan.rb +0 -60
- data/examples/essentials/logo.png +0 -0
- data/examples/essentials/plan.rb +0 -248
- data/examples/essentials/search_terms.txt +0 -19
- data/examples/exceptions/plan.rb +0 -20
- data/examples/httpauth/plan.rb +0 -33
- data/examples/timeout/plan.rb +0 -18
- data/examples/variables/plan.rb +0 -41
- data/lib/stella/client/container.rb +0 -378
- data/lib/stella/common.rb +0 -363
- data/lib/stella/data.rb +0 -59
- data/lib/stella/data/http.rb +0 -189
- data/lib/stella/engine/functional.rb +0 -156
- data/lib/stella/engine/load.rb +0 -516
- data/lib/stella/guidelines.rb +0 -18
- data/lib/stella/logger.rb +0 -150
- data/lib/stella/utils/httputil.rb +0 -266
- data/try/01_numeric_mixins_tryouts.rb +0 -40
- data/try/12_digest_tryouts.rb +0 -42
- data/try/70_module_usage.rb +0 -21
- data/try/api/10_functional.rb +0 -20
- data/try/configs/failed_requests.rb +0 -31
- data/try/configs/global_sequential.rb +0 -18
- data/try/proofs/thread_queue.rb +0 -21
data/CHANGES.txt
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
STELLA, CHANGES
|
2
2
|
|
3
|
+
#### 2.0.1 (2011-06-08) ###############################
|
4
|
+
|
5
|
+
NOTE: First release of 2.x.
|
6
|
+
|
7
|
+
|
3
8
|
#### 0.8.X (XXXX-XX-XX) ###############################
|
4
9
|
|
10
|
+
NOTE: We're now focusing our effort on 2.0, so these features are still
|
11
|
+
outstanding for a 1.x release (they probably won't be worked on).
|
12
|
+
|
5
13
|
* TODO: Force response block content type.
|
6
14
|
* TODO: Add option to dump full request/response output to a file by client
|
7
15
|
* TODO: review cookie handling. Not always sent automatically.
|
@@ -60,7 +68,7 @@ STELLA, CHANGES
|
|
60
68
|
* FIXED: There was no response body in Stella::Engine::Log objects
|
61
69
|
* CHANGE: Store URIs as strings in Stella::Engine::Log objects
|
62
70
|
* CHANGE: Stella::Data::HTTP now uses @header instead of @headers
|
63
|
-
* ADDED: Testrun#
|
71
|
+
* ADDED: Testrun#etime, Testrun#running?
|
64
72
|
* ADDED: Testrun.elapsed_seconds
|
65
73
|
* ADDED: Testrun.granularity which replaces Load::ROTATE_TIMELINE
|
66
74
|
|
data/Gemfile
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
source "http://production.s3.rubygems.org.s3.amazonaws.com"
|
2
|
+
|
3
|
+
gem 'SystemTimer', :platforms => :mri_18
|
4
|
+
|
5
|
+
gem 'familia', '0.7.1'
|
6
|
+
gem 'gibbler', '0.8.9'
|
7
|
+
gem 'drydock', '0.6.9'
|
8
|
+
gem 'benelux', '0.6.1'
|
9
|
+
gem 'sysinfo'
|
10
|
+
gem 'storable', '>= 0.8.8'
|
11
|
+
gem 'nokogiri', '1.4.4'
|
12
|
+
gem 'yajl-ruby'
|
13
|
+
gem 'multi_json'
|
14
|
+
gem 'public_suffix_service', '0.8.1'
|
15
|
+
gem 'whois', '1.6.6'
|
16
|
+
gem 'ipaddress', '0.7.0'
|
17
|
+
gem 'addressable', '2.2.2'
|
18
|
+
gem 'redis', '2.2.0'
|
19
|
+
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://production.s3.rubygems.org.s3.amazonaws.com/
|
3
|
+
specs:
|
4
|
+
SystemTimer (1.2.3)
|
5
|
+
addressable (2.2.2)
|
6
|
+
attic (0.5.3)
|
7
|
+
benelux (0.6.1)
|
8
|
+
attic (>= 0.5.3)
|
9
|
+
storable (>= 0.8.6)
|
10
|
+
drydock (0.6.9)
|
11
|
+
familia (0.7.1)
|
12
|
+
gibbler (>= 0.8.6)
|
13
|
+
multi_json (>= 0.0.5)
|
14
|
+
redis (>= 2.1.0)
|
15
|
+
storable (>= 0.8.6)
|
16
|
+
uri-redis (>= 0.4.2)
|
17
|
+
gibbler (0.8.9)
|
18
|
+
attic (>= 0.4.0)
|
19
|
+
ipaddress (0.7.0)
|
20
|
+
multi_json (0.0.5)
|
21
|
+
nokogiri (1.4.4)
|
22
|
+
public_suffix_service (0.8.1)
|
23
|
+
redis (2.2.0)
|
24
|
+
storable (0.8.8)
|
25
|
+
sysinfo (0.7.3)
|
26
|
+
drydock
|
27
|
+
storable
|
28
|
+
uri-redis (0.4.2)
|
29
|
+
whois (1.6.6)
|
30
|
+
yajl-ruby (0.7.9)
|
31
|
+
|
32
|
+
PLATFORMS
|
33
|
+
ruby
|
34
|
+
|
35
|
+
DEPENDENCIES
|
36
|
+
SystemTimer
|
37
|
+
addressable (= 2.2.2)
|
38
|
+
benelux (= 0.6.1)
|
39
|
+
drydock (= 0.6.9)
|
40
|
+
familia (= 0.7.1)
|
41
|
+
gibbler (= 0.8.9)
|
42
|
+
ipaddress (= 0.7.0)
|
43
|
+
multi_json
|
44
|
+
nokogiri (= 1.4.4)
|
45
|
+
public_suffix_service (= 0.8.1)
|
46
|
+
redis (= 2.2.0)
|
47
|
+
storable (>= 0.8.8)
|
48
|
+
sysinfo
|
49
|
+
whois (= 1.6.6)
|
50
|
+
yajl-ruby
|
data/README.md
CHANGED
@@ -1,96 +1,21 @@
|
|
1
|
-
# Stella - 0
|
1
|
+
# Stella - 2.0-RC1
|
2
2
|
|
3
|
-
**
|
4
|
-
|
5
|
-
Stella is an integration and load testing tool. It fits well into an agile development process because the configuration syntax is simple yet powerful and a single config can be used for both kinds of tests (integration and load). Stella runs at the protocol-level which means it generates HTTP requests and parses the responses but does not perform any browser simulation (see Caveats).
|
6
|
-
|
7
|
-
### Important Information Regarding Your Testplans
|
8
|
-
|
9
|
-
*The testplan configuration syntax changed a little in 0.8. Most configs will not be affected. See "News" below for more info.*
|
3
|
+
**Define realistic testplans and run them against your webapps**
|
10
4
|
|
11
5
|
## Features
|
12
6
|
|
13
|
-
* Support for simulating multiple usecases at the same time
|
14
|
-
* Sophisticated response handling
|
15
|
-
* Automatic parsing of HTML, XML, XHTML, YAML, and JSON response bodies
|
16
|
-
* Dynamic variable replacement
|
17
|
-
* Support for testing multiple sites simultaneously
|
18
|
-
|
19
|
-
|
20
|
-
## Caveats
|
21
|
-
|
22
|
-
There are a few known limitations:
|
23
|
-
|
24
|
-
* *POSSIBLE SHOW-STOPPER*: An upper limit of around 200-300 concurrent virtual HTTP clients. There is a threading issue in the HTTPClient library which appears under high load.
|
25
|
-
* *POSSIBLE SHOW-STOPPER*: No support for browser or UI based tests (a la Watir or Selenium). If this is a show stopper for you, check out [WatirGrid](http://github.com/90kts/watirgrid)
|
26
|
-
* *ANNOYING*: File uploads do not work with some HTTP servers (WEBrick)
|
27
|
-
* *ANNOYING*: Lack of documentation (see examples/ directory)
|
28
|
-
* *ANNOYING*: Reporting is limited to log files and command-line output. You need to make your own graphs.
|
29
|
-
|
30
|
-
|
31
7
|
## Examples
|
32
8
|
|
33
|
-
|
34
9
|
### Testplan Configuration
|
35
10
|
|
36
|
-
Every load testing tool worth its salt allows you to control the logical flow with some form of programming language. One of the advantages that open source tools have over commercial ones is that the languages used are generally well known whereas most commercial tools use proprietary languages. This makes it possible to define sophisticated and realistic tests.
|
37
|
-
|
38
|
-
Stella test plans are defined in subset of the Ruby programming language. They also typically contain more than one usecase which is important when simulating realistic load.
|
39
|
-
|
40
|
-
usecase "An Example Usecase" do
|
41
|
-
get '/some/path' do
|
42
|
-
param :what => 'food'
|
43
|
-
param :where => 'iowa'
|
44
|
-
response 200 do
|
45
|
-
# code executed when the server returns a 200 response.
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
get '/a/dynamic/:path' do
|
50
|
-
param :path => random(4) # => http://host/a/dynamic/jrr1
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
|
55
|
-
See the [examples/](http://github.com/solutious/stella/tree/0.8/examples/) directory and [Getting Started](http://solutious.com/projects/stella/getting-started/) for more information.
|
56
|
-
|
57
|
-
|
58
11
|
### Running Tests
|
59
12
|
|
60
|
-
Stella is a command-line tool with two main commands: "verify" for integration tests and "generate" for load tests.
|
61
|
-
|
62
|
-
# Verify a test plan is defined correctly
|
63
|
-
# by running a single user functional test.
|
64
|
-
$ stella verify -p examples/essentials/plan.rb http://stellaaahhhh.com/
|
65
|
-
|
66
|
-
# Generate load using the same test plan.
|
67
|
-
$ stella generate -p examples/essentials/plan.rb -c 50 -d 10m http://stellaaahhhh.com/
|
68
|
-
|
69
|
-
|
70
|
-
See <tt>$ stella -h</tt> and <tt>$ stella example</tt> for more info.
|
71
|
-
|
72
|
-
## News
|
73
|
-
|
74
|
-
### 2010-01-16: sequential, random, rsequential etc... methods now return ERB-style templates instead of Procs
|
75
|
-
|
76
|
-
Pre-0.8 would return a Proc that would be evaluated at request time:
|
77
|
-
|
78
|
-
get "/" do
|
79
|
-
param :salt => random(8) # => "#<Proc0x13423c0 ...>"
|
80
|
-
end
|
81
|
-
|
82
|
-
In 0.8 and beyond, the same configuration will return a String:
|
83
|
-
|
84
|
-
get "/" do
|
85
|
-
param :salt => random(8) # => "<%= random(8) %>"
|
86
|
-
end
|
87
|
-
|
88
13
|
## Installation
|
89
14
|
|
90
15
|
Get it in one of the following ways:
|
91
16
|
|
92
|
-
$ gem install stella
|
93
|
-
$ sudo gem install stella
|
17
|
+
$ gem install stella
|
18
|
+
$ sudo gem install stella
|
94
19
|
$ git clone git://github.com/solutious/stella.git
|
95
20
|
|
96
21
|
You can also download via [tarball](http://github.com/solutious/stella/tarball/latest) or [zip](http://github.com/solutious/stella/zipball/latest).
|
@@ -113,6 +38,7 @@ NOTE: If you get errors about libxml2 or libxslt on Ubuntu, you need to install
|
|
113
38
|
## Credits
|
114
39
|
|
115
40
|
* [Delano Mandelbaum](http://solutious.com)
|
41
|
+
* [Daniel J. Berger] for file logic borrowed from ptools[http://raa.ruby-lang.org/project/ptools/]
|
116
42
|
|
117
43
|
|
118
44
|
## Thanks
|
data/Rakefile
CHANGED
@@ -20,17 +20,20 @@ begin
|
|
20
20
|
gem.version = "#{config[:MAJOR]}.#{config[:MINOR]}.#{config[:PATCH]}.#{config[:BUILD]}"
|
21
21
|
gem.name = "stella"
|
22
22
|
gem.rubyforge_project = gem.name
|
23
|
-
gem.summary = "
|
24
|
-
gem.description = "
|
23
|
+
gem.summary = "Define realistic testplans and run them against your webapps"
|
24
|
+
gem.description = "Define realistic testplans and run them against your webapps"
|
25
25
|
gem.email = "delano@solutious.com"
|
26
|
-
gem.homepage = "http://
|
26
|
+
gem.homepage = "http://github.com/solutious/stella"
|
27
27
|
gem.authors = ["Delano Mandelbaum"]
|
28
|
-
gem.add_dependency(
|
28
|
+
gem.add_dependency('familia', '>= 0.7.1')
|
29
|
+
gem.add_dependency("gibbler", ">= 0.8.9")
|
29
30
|
gem.add_dependency("drydock", ">= 0.6.9")
|
30
|
-
gem.add_dependency("benelux", "
|
31
|
+
gem.add_dependency("benelux", ">= 0.6.1")
|
31
32
|
gem.add_dependency('sysinfo', '>= 0.7.3')
|
32
|
-
gem.add_dependency('storable', '>= 0.
|
33
|
-
gem.add_dependency("nokogiri")
|
33
|
+
gem.add_dependency('storable', '>= 0.8.8')
|
34
|
+
gem.add_dependency("nokogiri", ">= 1.4.4")
|
35
|
+
gem.add_dependency("public_suffix_service", ">= 0.8.1")
|
36
|
+
gem.add_dependency("whois", ">= 1.6.6")
|
34
37
|
|
35
38
|
#gem.add_development_dependency("rspec", ">= 1.2.9")
|
36
39
|
#gem.add_development_dependency("mocha", ">= 0.9.8")
|
data/Rudyfile
CHANGED
data/TODO
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
getaddrinfo: Temporary failure in name resolution (http://bccurrencyexchange.com:80)
|
2
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient/session.rb:680:in `initialize'
|
3
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient/session.rb:680:in `new'
|
4
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient/session.rb:680:in `create_socket'
|
5
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient/session.rb:637:in `block in connect'
|
6
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient/timeout.rb:128:in `timeout'
|
7
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient/session.rb:636:in `connect'
|
8
|
+
/usr/local/lib/ruby/gems/1.9.1/gems/benelux-0.5.16/lib/benelux/packer.rb:101:in `connect'
|
9
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient/session.rb:526:in `query'
|
10
|
+
/usr/local/lib/ruby/gems/1.9.1/gems/benelux-0.5.16/lib/benelux/packer.rb:101:in `query'
|
11
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient/session.rb:147:in `query'
|
12
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient.rb:956:in `do_get_block'
|
13
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient.rb:766:in `block in do_request'
|
14
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient.rb:851:in `protect_keep_alive_disconnected'
|
15
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient.rb:765:in `do_request'
|
16
|
+
/usr/local/lib/ruby/gems/1.9.1/gems/benelux-0.5.16/lib/benelux/packer.rb:101:in `do_request'
|
17
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient.rb:667:in `request'
|
18
|
+
/home/stella/stella/vendor/httpclient-2.1.5.2/httpclient.rb:592:in `get'
|
19
|
+
/home/stella/stella/lib/stella/client.rb:54:in `block in execute'
|
20
|
+
/home/stella/stella/lib/stella/client.rb:44:in `each'
|
21
|
+
/home/stella/stella/lib/stella/client.rb:44:in `each_with_index'
|
22
|
+
/home/stella/stella/lib/stella/client.rb:44:in `execute'
|
23
|
+
/home/stella/stella/lib/stella/engine.rb:46:in `block (4 levels) in run'
|
24
|
+
/home/stella/stella/lib/stella.rb:123:in `call'
|
25
|
+
/home/stella/stella/lib/stella.rb:123:in `rescue'
|
26
|
+
/home/stella/stella/lib/stella/engine.rb:46:in `block (3 levels) in run'
|
27
|
+
/home/stella/stella/lib/stella/engine.rb:44:in `each'
|
28
|
+
/home/stella/stella/lib/stella/engine.rb:44:in `each_with_index'
|
29
|
+
/home/stella/stella/lib/stella/engine.rb:44:in `block (2 levels) in run'
|
30
|
+
/home/stella/stella/lib/stella/engine.rb:43:in `times'
|
31
|
+
/home/stella/stella/lib/stella/engine.rb:43:in `block in run'
|
data/VERSION.yml
CHANGED
data/bin/stella
CHANGED
@@ -12,9 +12,7 @@
|
|
12
12
|
# Usage:
|
13
13
|
#
|
14
14
|
# $ stella -h
|
15
|
-
# $ stella
|
16
|
-
# $ stella generate -u 10 -t 60 http://test.example.com/
|
17
|
-
# $ stella generate -u 10 -r 40 -p plans/basic.rb http://test.example.com/
|
15
|
+
# $ stella checkup -p plans/basic.rb http://stellaaahhhh.com/
|
18
16
|
#
|
19
17
|
#--
|
20
18
|
|
@@ -23,8 +21,8 @@ BASE_PATH = File.expand_path File.join(File.dirname(__FILE__), '..')
|
|
23
21
|
lib_dir = File.join(BASE_PATH, 'lib')
|
24
22
|
$:.unshift lib_dir
|
25
23
|
|
26
|
-
require 'drydock'
|
27
24
|
require 'stella'
|
25
|
+
require 'drydock'
|
28
26
|
require 'stella/cli'
|
29
27
|
|
30
28
|
# Command-line interface for bin/stella
|
@@ -40,32 +38,23 @@ class Stella::CLI::Definition
|
|
40
38
|
#global :S, :secret, String, "Secret Key"
|
41
39
|
global :D, :debug, "Enable debug mode" do
|
42
40
|
Drydock.debug true
|
43
|
-
Stella.
|
41
|
+
Stella.debug = true
|
44
42
|
end
|
45
|
-
global :
|
46
|
-
global :H, :withheader, "Include X-Stella-ID request header"
|
47
|
-
global :P, :withparam, "Include __stella query parameter header"
|
43
|
+
global :P, :pause, Integer, "Seconds to wait before starting test"
|
44
|
+
#global :H, :withheader, "Include X-Stella-ID request header"
|
45
|
+
#global :P, :withparam, "Include __stella query parameter header"
|
48
46
|
global :T, :timeout, Float, "HTTP request timeout (default: unlimited)"
|
49
|
-
global :
|
50
|
-
|
51
|
-
|
52
|
-
end
|
53
|
-
global :var, Array, 'Set an arbitrary variable (--var "name=v")'
|
54
|
-
global :f, :format, String, "Output format (partial support)"
|
47
|
+
global :F, :format, String, "Output format (partial support)"
|
48
|
+
global :f, :filter, String, "Only run usecases that match this filter"
|
49
|
+
global :p, :testplan, String, "Path to testplan"
|
55
50
|
global :n, :nocolor, "Disable output colors" do
|
56
51
|
String.disable_color
|
57
52
|
end
|
58
53
|
global :q, :quiet, "Be quiet!" do
|
59
|
-
Stella.
|
54
|
+
Stella.quiet = true
|
60
55
|
end
|
61
56
|
global :v, :verbose, "Increase verbosity of output (e.g. -v or -vv or -vvv)" do
|
62
|
-
Stella.
|
63
|
-
end
|
64
|
-
global :nostats, "Disable stat collection" do
|
65
|
-
true
|
66
|
-
end
|
67
|
-
global :notemplates, "Disable template parsing" do
|
68
|
-
true
|
57
|
+
Stella.noise += 1
|
69
58
|
end
|
70
59
|
global :V, :version, "Display version number" do
|
71
60
|
puts "Stella version: #{Stella::VERSION.inspect}"
|
@@ -79,64 +68,17 @@ class Stella::CLI::Definition
|
|
79
68
|
usage "stella example"
|
80
69
|
command :example => Stella::CLI
|
81
70
|
|
82
|
-
about "
|
83
|
-
usage "stella
|
84
|
-
command :config => Stella::CLI
|
85
|
-
|
86
|
-
about "Preview a test plan"
|
87
|
-
usage "stella preview [-p path/2/testplan.rb] "
|
88
|
-
option :c, :clients, Integer, "Maximum number of virtual clients (ignored)"
|
89
|
-
option :a, :arrival, Float, "Arrival rate (ignored)"
|
90
|
-
option :r, :repetitions, Integer, "Number of times to repeat the testplan (ignored)"
|
91
|
-
option :d, :duration, String, "Max duration to run test (ignored)"
|
92
|
-
option :W, :nowait, "Ignore wait times (ignored)"
|
93
|
-
option :w, :wait, Float, "Wait time (in seconds) between client requests (ignored if testplan supplied)"
|
94
|
-
option :p, :testplan, String, "Path to testplan"
|
95
|
-
option :g, :granularity, Integer, "Amount of time (in seconds) between timeline rotations"
|
96
|
-
command :preview => Stella::CLI
|
97
|
-
|
98
|
-
about "Verify a test plan"
|
99
|
-
usage "stella verify [-p path/2/testplan.rb] URI"
|
100
|
-
usage "e.g."
|
101
|
-
usage " $ stella verify -p path/2/testplan.rb http://stellaaahhhh.com/"
|
102
|
-
option :c, :clients, Integer, "Maximum number of virtual clients (ignored)"
|
103
|
-
option :a, :arrival, Float, "Arrival rate (ignored)"
|
104
|
-
option :r, :repetitions, Integer, "Number of times to repeat the testplan (ignored)"
|
105
|
-
option :d, :duration, String, "Max duration to run test (ignored)"
|
106
|
-
option :W, :nowait, "Ignore wait times"
|
107
|
-
option :w, :wait, Float, "Wait time (in seconds) between client requests (ignored if testplan supplied)"
|
108
|
-
option :p, :testplan, String, "Path to testplan"
|
109
|
-
option :g, :granularity, Integer, "Amount of time (in seconds) between timeline rotations"
|
110
|
-
command :verify => Stella::CLI
|
111
|
-
|
112
|
-
about "Generate requests"
|
113
|
-
usage "stella generate [options] URI"
|
114
|
-
#usage "stella load [options] URI"
|
115
|
-
#usage "stella stress [options] URI"
|
71
|
+
about "Run a checkup"
|
72
|
+
usage "stella checkup [options] URI"
|
116
73
|
usage "e.g. "
|
117
|
-
usage " $ stella
|
118
|
-
|
119
|
-
option :
|
120
|
-
option :a, :arrival, Float, "Arrival rate (new clients per second)"
|
74
|
+
usage " $ stella checkup -p path/2/testplan.rb http://stellaaahhhh.com/"
|
75
|
+
option :c, :concurrency, Integer, "Maximum number of virtual clients"
|
76
|
+
#option :a, :arrival, Float, "Arrival rate (new clients per second)"
|
121
77
|
option :r, :repetitions, Integer, "Number of times to repeat the testplan (per vclient)"
|
122
|
-
option :d, :duration, String, "Max duration to run test"
|
123
78
|
option :W, :nowait, "Ignore wait times"
|
124
|
-
option :w, :wait, Float, "Wait time (in seconds) between client requests (ignored if testplan supplied)
|
125
|
-
|
126
|
-
option :g, :granularity, Integer, "Amount of time (in seconds) between timeline rotations"
|
127
|
-
command :generate => Stella::CLI
|
79
|
+
#option :w, :wait, Float, "Wait time (in seconds) between client requests (ignored if testplan supplied)
|
80
|
+
command :checkup => Stella::CLI
|
128
81
|
|
129
|
-
about "Initialize Stella configuration"
|
130
|
-
command :init do
|
131
|
-
Stella::Config.init
|
132
|
-
end
|
133
|
-
|
134
|
-
if Drydock.debug?
|
135
|
-
about "Blast away all Stella config assets"
|
136
|
-
command :blast do
|
137
|
-
Stella::Config.blast
|
138
|
-
end
|
139
|
-
end
|
140
82
|
|
141
83
|
|
142
84
|
# ---------------------------------- STELLA MISCELLANEOUS --------
|
@@ -155,8 +97,8 @@ class Stella::CLI::Definition
|
|
155
97
|
|
156
98
|
after do |obj|
|
157
99
|
@elapsed = Time.now - @start
|
158
|
-
if @elapsed > 0.1
|
159
|
-
Stella.
|
100
|
+
if @elapsed > 0.1 && Stella.noise > 1
|
101
|
+
Stella.li "#{$/}Elapsed: %.2f seconds" % @elapsed.to_f
|
160
102
|
end
|
161
103
|
code = obj.exit_code if obj.respond_to? :exit_code
|
162
104
|
exit code ||= 0
|
@@ -173,13 +115,13 @@ rescue Drydock::InvalidArgument => ex
|
|
173
115
|
STDERR.puts ex.message
|
174
116
|
rescue Drydock::UnknownCommand => ex
|
175
117
|
STDERR.puts "Unknown command: %s" % ex.name
|
176
|
-
rescue
|
118
|
+
rescue StellaError => ex
|
177
119
|
STDERR.puts ex.message
|
178
|
-
STDERR.puts ex.backtrace if Stella.
|
120
|
+
STDERR.puts ex.backtrace if Stella.debug?
|
179
121
|
rescue Interrupt
|
180
122
|
puts $/, "Exiting... "
|
181
123
|
exit 1
|
182
124
|
rescue => ex
|
183
125
|
STDERR.puts "ERROR (#{ex.class.to_s}): #{ex.message}"
|
184
|
-
STDERR.puts ex.backtrace if Stella.
|
126
|
+
STDERR.puts ex.backtrace if Stella.debug?
|
185
127
|
end
|
data/certs/README.txt
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
2011-04-08
|
2
|
+
|
3
|
+
cert/stella-master.crt is a combination of the following:
|
4
|
+
|
5
|
+
## CERTIFICATE ORIGINS ##
|
6
|
+
|
7
|
+
- cacerts.pem:
|
8
|
+
https://github.com/nahi/httpclient/blob/78519746cc417/dist_key/cacerts.pem
|
9
|
+
|
10
|
+
- gd*.crt:
|
11
|
+
https://certs.godaddy.com/anonymous/repository.seam
|
12
|
+
|
13
|
+
- startssl-sub.class1.server.ca.pem
|
14
|
+
https://www.startssl.com/certs/sub.class1.server.ca.pem
|
15
|
+
|
16
|
+
- startssl-ca.pem
|
17
|
+
https://www.startssl.com/certs/ca.pem
|