stella 0.8.7.001 → 0.8.7.002
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|