stella 0.8.7.001 → 0.8.7.002
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.txt +7 -0
- data/VERSION.yml +1 -1
- data/bin/stella +1 -0
- data/lib/stella.rb +3 -1
- data/lib/stella/cli.rb +2 -2
- data/lib/stella/client.rb +6 -5
- data/lib/stella/engine.rb +4 -1
- data/lib/stella/engine/functional.rb +4 -2
- data/lib/stella/engine/load.rb +6 -5
- data/lib/stella/testplan.rb +0 -1
- data/stella.gemspec +2 -2
- data/support/sample_webapp/app.rb +6 -1
- metadata +2 -2
data/CHANGES.txt
CHANGED
@@ -10,6 +10,13 @@ STELLA, CHANGES
|
|
10
10
|
* TODO: request block conditions.
|
11
11
|
* TODO: process templates for calls to set in get blocks
|
12
12
|
|
13
|
+
#### 0.8.7.002 (2010-06-14) ###############################
|
14
|
+
|
15
|
+
* FIXED: Specifying a host w/ a path and no testplan no longer doubles up the path
|
16
|
+
* ADDED: Global HTTP client timeout ("stella -T 60")
|
17
|
+
* CHANGE: Timeouts are reported as exceptions.
|
18
|
+
|
19
|
+
|
13
20
|
#### 0.8.7 (2010-05-21) ###############################
|
14
21
|
|
15
22
|
* FIXED: sequential, rsequential, and random values were broken for Arrays
|
data/VERSION.yml
CHANGED
data/bin/stella
CHANGED
@@ -45,6 +45,7 @@ class Stella::CLI::Definition
|
|
45
45
|
global :W, :wait, Integer, "Seconds to wait before starting test"
|
46
46
|
global :H, :withheader, "Include X-Stella-ID request header"
|
47
47
|
global :P, :withparam, "Include __stella query parameter header"
|
48
|
+
global :T, :timeout, Float, "HTTP request timeout (default: unlimited)"
|
48
49
|
global :o, :output, String, "Write output to the given file" do |v|
|
49
50
|
String.disable_color
|
50
51
|
Stella.log.output = v
|
data/lib/stella.rb
CHANGED
@@ -17,7 +17,9 @@ require 'gibbler/aliases' # important for run time digests and freezes
|
|
17
17
|
require 'benelux'
|
18
18
|
require 'proc_source'
|
19
19
|
|
20
|
-
class OpenStruct
|
20
|
+
class OpenStruct
|
21
|
+
include Gibbler::Object
|
22
|
+
end
|
21
23
|
|
22
24
|
module Stella
|
23
25
|
module VERSION
|
data/lib/stella/cli.rb
CHANGED
@@ -25,7 +25,7 @@ class Stella::CLI < Drydock::Command
|
|
25
25
|
[:nowait, :clients, :repetitions, :duration, :arrival, :granularity, :'wait'].each do |opt|
|
26
26
|
opts[opt] = @option.send(opt) unless @option.send(opt).nil?
|
27
27
|
end
|
28
|
-
[:'notemplates', :'nostats', :'noheader', :'noparam'].each do |opt|
|
28
|
+
[:'notemplates', :'nostats', :'noheader', :'noparam', :'timeout'].each do |opt|
|
29
29
|
opts[opt] = @global.send(opt) unless @global.send(opt).nil?
|
30
30
|
end
|
31
31
|
testrun = Stella::Testrun.new @testplan, opts
|
@@ -89,7 +89,7 @@ class Stella::CLI < Drydock::Command
|
|
89
89
|
end
|
90
90
|
@hosts = @argv.collect { |uri|;
|
91
91
|
uri = 'http://' << uri unless uri.match /^https?:\/\//i
|
92
|
-
URI.parse uri
|
92
|
+
obj = URI.parse uri
|
93
93
|
}
|
94
94
|
if @option.testplan
|
95
95
|
@testplan = Stella::Testplan.load_file @option.testplan
|
data/lib/stella/client.rb
CHANGED
@@ -28,7 +28,8 @@ module Stella
|
|
28
28
|
:withparam => false,
|
29
29
|
:withheader => false,
|
30
30
|
:notemplates => false,
|
31
|
-
:wait => 0
|
31
|
+
:wait => 0,
|
32
|
+
:timeout => nil
|
32
33
|
}.merge! opts
|
33
34
|
@opts = opts
|
34
35
|
@base_uri, @index = base_uri, index
|
@@ -86,8 +87,8 @@ module Stella
|
|
86
87
|
http_client.set_auth(domain, user, pass)
|
87
88
|
end
|
88
89
|
|
89
|
-
if tout = req.timeout || usecase.timeout
|
90
|
-
http_client.receive_timeout = tout
|
90
|
+
if tout = req.timeout || usecase.timeout || @opts[:timeout]
|
91
|
+
http_client.receive_timeout = tout if tout > 0
|
91
92
|
end
|
92
93
|
Stella.ld "TIMEOUT " << http_client.receive_timeout.to_s
|
93
94
|
|
@@ -145,7 +146,7 @@ module Stella
|
|
145
146
|
asset_duration = Time.now - asset_start
|
146
147
|
rescue HTTPClient::ConnectTimeoutError, HTTPClient::SendTimeoutError,
|
147
148
|
Errno::ECONNRESET, HTTPClient::ReceiveTimeoutError => ex
|
148
|
-
update(:request_timeout, usecase, uri, req, params, headers, counter, container)
|
149
|
+
update(:request_timeout, usecase, uri, req, params, headers, counter, container, http_client.receive_timeout)
|
149
150
|
Benelux.remove_thread_tags :status, :retry, :request, :stella_id
|
150
151
|
next
|
151
152
|
rescue => ex
|
@@ -304,7 +305,7 @@ module Stella
|
|
304
305
|
|
305
306
|
# Support for specifying default path prefix:
|
306
307
|
# $ stella verify -p plan.rb http://localhost/basicauth
|
307
|
-
if URI::Generic === base_uri && base_uri.path
|
308
|
+
if URI::Generic === base_uri && base_uri.path && uri != base_uri
|
308
309
|
if uri.path.nil? || uri.path.empty?
|
309
310
|
begin
|
310
311
|
uri.path = base_uri.path
|
data/lib/stella/engine.rb
CHANGED
@@ -95,6 +95,7 @@ class Stella::Testrun < Storable
|
|
95
95
|
field :duration => Integer
|
96
96
|
field :arrival => Float
|
97
97
|
field :repetitions => Integer
|
98
|
+
field :timeout => Integer
|
98
99
|
field :wait => Range
|
99
100
|
field :nowait => TrueClass
|
100
101
|
field :logsize => Integer
|
@@ -148,7 +149,8 @@ class Stella::Testrun < Storable
|
|
148
149
|
:notemplates => self.notemplates || false,
|
149
150
|
:withparam => self.withparam || false,
|
150
151
|
:withheader => self.withheader || false,
|
151
|
-
:wait => self.wait || 0
|
152
|
+
:wait => self.wait || 0,
|
153
|
+
:timeout => self.timeout
|
152
154
|
}
|
153
155
|
end
|
154
156
|
|
@@ -194,6 +196,7 @@ class Stella::Testrun < Storable
|
|
194
196
|
# Support durations in the form "30m", "2h", etc...
|
195
197
|
@duration = @duration.in_seconds if String === @duration
|
196
198
|
|
199
|
+
@timeout &&= @timeout.to_f
|
197
200
|
@clients &&= @clients.to_i
|
198
201
|
@duration &&= @duration.to_i
|
199
202
|
@arrival &&= @arrival.to_f
|
@@ -6,6 +6,8 @@ module Stella::Engine
|
|
6
6
|
client = Stella::Client.new testrun.hosts.first, testrun.client_options
|
7
7
|
client.add_observer(self)
|
8
8
|
|
9
|
+
p testrun.client_options
|
10
|
+
|
9
11
|
Stella.stdout.info2 $/, "Starting test...", $/
|
10
12
|
testrun.start_time = Time.now.utc.to_i
|
11
13
|
|
@@ -145,9 +147,9 @@ module Stella::Engine
|
|
145
147
|
Stella.stdout.info " AUTH #{domain} (#{user}/#{pass})"
|
146
148
|
end
|
147
149
|
|
148
|
-
def update_request_timeout(client_id, usecase, uri, req, params, headers, counter, container)
|
150
|
+
def update_request_timeout(client_id, usecase, uri, req, params, headers, counter, container, timeout)
|
149
151
|
Benelux.thread_timeline.add_count :failed, 1
|
150
|
-
Stella.stdout.info " TIMEOUT %-53s" % [uri]
|
152
|
+
Stella.stdout.info " TIMEOUT(%f) %-53s" % [uri, timeout]
|
151
153
|
end
|
152
154
|
|
153
155
|
end
|
data/lib/stella/engine/load.rb
CHANGED
@@ -441,7 +441,7 @@ module Stella::Engine
|
|
441
441
|
|
442
442
|
def update_request_unhandled_exception(client_id, usecase, uri, req, params, ex)
|
443
443
|
Benelux.thread_timeline.add_message ex.message, :kind => :exception
|
444
|
-
Benelux.thread_timeline.add_count :
|
444
|
+
Benelux.thread_timeline.add_count :exception, 1
|
445
445
|
desc = "#{usecase.desc} > #{req.desc}"
|
446
446
|
if Stella.stdout.lev == 2
|
447
447
|
Stella.stdout.print 2, '.'.color(:red)
|
@@ -491,12 +491,13 @@ module Stella::Engine
|
|
491
491
|
Benelux.thread_timeline.add_message args.join('; '), :kind => :authentication
|
492
492
|
end
|
493
493
|
|
494
|
-
def update_request_timeout(client_id, usecase, uri, req, params, headers, counter, container)
|
495
|
-
|
496
|
-
|
494
|
+
def update_request_timeout(client_id, usecase, uri, req, params, headers, counter, container, timeout)
|
495
|
+
msg = " Client-%s TIMEOUT(%.1f) %-53s" % [client_id.shorter, timeout, uri]
|
496
|
+
Stella.stdout.info3 msg
|
497
|
+
Benelux.thread_timeline.add_count :exception, 1
|
497
498
|
args = [Time.now.to_f, Stella.sysinfo.hostname, client_id.short]
|
498
499
|
args.push [uri, 'TOUT', container.unique_id[0,10]]
|
499
|
-
Benelux.thread_timeline.add_message
|
500
|
+
Benelux.thread_timeline.add_message msg , :kind => :exception
|
500
501
|
end
|
501
502
|
|
502
503
|
def self.rescue(client_id, &blk)
|
data/lib/stella/testplan.rb
CHANGED
data/stella.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{stella}
|
8
|
-
s.version = "0.8.7.
|
8
|
+
s.version = "0.8.7.002"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Delano Mandelbaum"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-06-15}
|
13
13
|
s.default_executable = %q{stella}
|
14
14
|
s.description = %q{Blame Stella for breaking your web application!}
|
15
15
|
s.email = %q{delano@solutious.com}
|
@@ -51,7 +51,6 @@ end
|
|
51
51
|
|
52
52
|
get '/' do
|
53
53
|
@title << " - Search"
|
54
|
-
#sleep 0.05
|
55
54
|
erb :search_form
|
56
55
|
end
|
57
56
|
|
@@ -132,6 +131,12 @@ get '/listings.yaml' do
|
|
132
131
|
@listings.to_yaml
|
133
132
|
end
|
134
133
|
|
134
|
+
65.times do |time|
|
135
|
+
get "/timeout_#{time}" do
|
136
|
+
sleep time
|
137
|
+
'slept for %d' % time
|
138
|
+
end
|
139
|
+
end
|
135
140
|
|
136
141
|
before do
|
137
142
|
@cookie = request.cookies["bff-history"]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stella
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.7.
|
4
|
+
version: 0.8.7.002
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Delano Mandelbaum
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-06-15 00:00:00 -04:00
|
13
13
|
default_executable: stella
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|