blitz 0.1.7 → 0.1.8
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/Rakefile +1 -1
- data/blitz.gemspec +4 -5
- data/lib/blitz.rb +1 -1
- data/lib/blitz/client.rb +2 -0
- data/lib/blitz/command/curl.rb +31 -10
- metadata +29 -72
data/Rakefile
CHANGED
@@ -20,7 +20,7 @@ Jeweler::Tasks.new do |gem|
|
|
20
20
|
gem.license = "MIT"
|
21
21
|
gem.summary = %Q{Make load and performance testing a fun sport}
|
22
22
|
gem.description = %Q{Make load and performance testing a fun sport}
|
23
|
-
gem.email = "
|
23
|
+
gem.email = "support@blitz.io"
|
24
24
|
gem.authors = ["pcapr"]
|
25
25
|
gem.version = Blitz::Version
|
26
26
|
gem.executables = ['blitz']
|
data/blitz.gemspec
CHANGED
@@ -5,14 +5,14 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{blitz}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.8"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["pcapr"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-07-13}
|
13
13
|
s.default_executable = %q{blitz}
|
14
14
|
s.description = %q{Make load and performance testing a fun sport}
|
15
|
-
s.email = %q{
|
15
|
+
s.email = %q{support@blitz.io}
|
16
16
|
s.executables = ["blitz"]
|
17
17
|
s.extra_rdoc_files = [
|
18
18
|
"LICENSE.txt",
|
@@ -44,7 +44,7 @@ Gem::Specification.new do |s|
|
|
44
44
|
s.homepage = %q{http://blitz.io}
|
45
45
|
s.licenses = ["MIT"]
|
46
46
|
s.require_paths = ["lib"]
|
47
|
-
s.rubygems_version = %q{1.
|
47
|
+
s.rubygems_version = %q{1.6.2}
|
48
48
|
s.summary = %q{Make load and performance testing a fun sport}
|
49
49
|
s.test_files = [
|
50
50
|
"test/helper.rb",
|
@@ -52,7 +52,6 @@ Gem::Specification.new do |s|
|
|
52
52
|
]
|
53
53
|
|
54
54
|
if s.respond_to? :specification_version then
|
55
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
56
55
|
s.specification_version = 3
|
57
56
|
|
58
57
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
data/lib/blitz.rb
CHANGED
data/lib/blitz/client.rb
CHANGED
data/lib/blitz/command/curl.rb
CHANGED
@@ -107,12 +107,17 @@ class Curl < Command # :nodoc:
|
|
107
107
|
trap(s) { continue = false }
|
108
108
|
end
|
109
109
|
job = ::Blitz::Curl::Rush.queue args
|
110
|
+
border = "+-----------+----------+----------+------------+--------------+--------+----------+\n"
|
110
111
|
msg "rushing from #{job.region}..."
|
112
|
+
msg border
|
113
|
+
msg "| time (s) | users | hits/sec | kbytes/sec | latency (ms) | errors | timeouts |\n"
|
114
|
+
msg border
|
111
115
|
job.result do |result|
|
112
116
|
print_rush_result result
|
113
117
|
sleep 1.0 if not continue
|
114
118
|
continue
|
115
119
|
end
|
120
|
+
msg border
|
116
121
|
puts
|
117
122
|
msg "[aborted]" if not continue
|
118
123
|
rescue ::Blitz::Curl::Error::Authorize => e
|
@@ -126,21 +131,37 @@ class Curl < Command # :nodoc:
|
|
126
131
|
|
127
132
|
def print_rush_result result
|
128
133
|
recent = result.timeline[-1]
|
129
|
-
|
130
|
-
|
131
|
-
timeouts = recent.timeouts ? ", %u timeouts" % recent.timeouts : ''
|
132
|
-
bandwidth = ''
|
134
|
+
kilobytes_per_second = 0
|
135
|
+
hits_per_second = 0
|
133
136
|
if result.timeline.size > 1
|
134
137
|
last = result.timeline[-2]
|
135
138
|
elapsed = recent.timestamp - last.timestamp
|
136
|
-
|
137
|
-
|
139
|
+
hits_per_second = ( recent.hits - last.hits ) / ( recent.timestamp - last.timestamp )
|
140
|
+
kilobytes_per_second = ( ( recent.rxbytes + recent.txbytes ) - ( last.rxbytes + last.txbytes ) / elapsed ) / 1024
|
138
141
|
else
|
139
|
-
|
140
|
-
|
142
|
+
hits_per_second = recent.hits/recent.timestamp
|
143
|
+
kilobytes_per_second = ( ( recent.rxbytes + recent.txbytes )/recent.timestamp ) / 1024
|
144
|
+
end
|
145
|
+
|
146
|
+
output = ['']
|
147
|
+
output << "%10u " % recent.timestamp
|
148
|
+
output << "%9u " % recent.volume
|
149
|
+
output << "%9u " % hits_per_second
|
150
|
+
output << "%11u " % kilobytes_per_second
|
151
|
+
|
152
|
+
duration = recent.duration * 1000
|
153
|
+
if duration >= 0
|
154
|
+
output << "%13u " % duration
|
155
|
+
end
|
156
|
+
|
157
|
+
output << "%7u " % recent.errors
|
158
|
+
output << "%9u " % recent.timeouts
|
159
|
+
output << ''
|
160
|
+
|
161
|
+
if recent.volume > 0
|
162
|
+
$stdout.print output.join('|')
|
163
|
+
$stdout.print "\n"
|
141
164
|
end
|
142
|
-
duration = recent.duration >= 0 ? " @ %.2f sec" % recent.duration : ''
|
143
|
-
$stdout.print "#{hits}#{errors}#{timeouts}#{bandwidth}#{duration}\n"
|
144
165
|
$stdout.flush
|
145
166
|
end
|
146
167
|
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blitz
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 7
|
10
|
-
version: 0.1.7
|
4
|
+
prerelease:
|
5
|
+
version: 0.1.8
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- pcapr
|
@@ -15,123 +10,88 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-
|
13
|
+
date: 2011-07-13 00:00:00 -07:00
|
19
14
|
default_executable: blitz
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
17
|
name: couchrest
|
25
|
-
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
19
|
none: false
|
27
20
|
requirements:
|
28
21
|
- - ~>
|
29
22
|
- !ruby/object:Gem::Version
|
30
|
-
hash: 21
|
31
|
-
segments:
|
32
|
-
- 1
|
33
|
-
- 0
|
34
|
-
- 1
|
35
23
|
version: 1.0.1
|
36
|
-
requirement: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
24
|
type: :runtime
|
39
25
|
prerelease: false
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
40
28
|
name: rest-client
|
41
|
-
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
30
|
none: false
|
43
31
|
requirements:
|
44
32
|
- - ~>
|
45
33
|
- !ruby/object:Gem::Version
|
46
|
-
hash: 13
|
47
|
-
segments:
|
48
|
-
- 1
|
49
|
-
- 6
|
50
|
-
- 1
|
51
34
|
version: 1.6.1
|
52
|
-
requirement: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
35
|
type: :runtime
|
55
36
|
prerelease: false
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
56
39
|
name: json
|
57
|
-
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
58
41
|
none: false
|
59
42
|
requirements:
|
60
43
|
- - ~>
|
61
44
|
- !ruby/object:Gem::Version
|
62
|
-
hash: 1
|
63
|
-
segments:
|
64
|
-
- 1
|
65
|
-
- 5
|
66
|
-
- 1
|
67
45
|
version: 1.5.1
|
68
|
-
requirement: *id003
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
46
|
type: :runtime
|
71
47
|
prerelease: false
|
48
|
+
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
72
50
|
name: json_pure
|
73
|
-
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
74
52
|
none: false
|
75
53
|
requirements:
|
76
54
|
- - ~>
|
77
55
|
- !ruby/object:Gem::Version
|
78
|
-
hash: 1
|
79
|
-
segments:
|
80
|
-
- 1
|
81
|
-
- 5
|
82
|
-
- 1
|
83
56
|
version: 1.5.1
|
84
|
-
requirement: *id004
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
57
|
type: :runtime
|
87
58
|
prerelease: false
|
59
|
+
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
88
61
|
name: hexy
|
89
|
-
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
90
63
|
none: false
|
91
64
|
requirements:
|
92
65
|
- - ~>
|
93
66
|
- !ruby/object:Gem::Version
|
94
|
-
hash: 25
|
95
|
-
segments:
|
96
|
-
- 0
|
97
|
-
- 1
|
98
|
-
- 1
|
99
67
|
version: 0.1.1
|
100
|
-
|
101
|
-
- !ruby/object:Gem::Dependency
|
102
|
-
type: :development
|
68
|
+
type: :runtime
|
103
69
|
prerelease: false
|
70
|
+
version_requirements: *id005
|
71
|
+
- !ruby/object:Gem::Dependency
|
104
72
|
name: bundler
|
105
|
-
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
106
74
|
none: false
|
107
75
|
requirements:
|
108
76
|
- - ~>
|
109
77
|
- !ruby/object:Gem::Version
|
110
|
-
hash: 23
|
111
|
-
segments:
|
112
|
-
- 1
|
113
|
-
- 0
|
114
|
-
- 0
|
115
78
|
version: 1.0.0
|
116
|
-
requirement: *id006
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
79
|
type: :development
|
119
80
|
prerelease: false
|
81
|
+
version_requirements: *id006
|
82
|
+
- !ruby/object:Gem::Dependency
|
120
83
|
name: jeweler
|
121
|
-
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
122
85
|
none: false
|
123
86
|
requirements:
|
124
87
|
- - ~>
|
125
88
|
- !ruby/object:Gem::Version
|
126
|
-
hash: 1
|
127
|
-
segments:
|
128
|
-
- 1
|
129
|
-
- 5
|
130
|
-
- 1
|
131
89
|
version: 1.5.1
|
132
|
-
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: *id007
|
133
93
|
description: Make load and performance testing a fun sport
|
134
|
-
email:
|
94
|
+
email: support@blitz.io
|
135
95
|
executables:
|
136
96
|
- blitz
|
137
97
|
extensions: []
|
@@ -175,7 +135,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
175
135
|
requirements:
|
176
136
|
- - ">="
|
177
137
|
- !ruby/object:Gem::Version
|
178
|
-
hash:
|
138
|
+
hash: 848882337
|
179
139
|
segments:
|
180
140
|
- 0
|
181
141
|
version: "0"
|
@@ -184,14 +144,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
144
|
requirements:
|
185
145
|
- - ">="
|
186
146
|
- !ruby/object:Gem::Version
|
187
|
-
hash: 3
|
188
|
-
segments:
|
189
|
-
- 0
|
190
147
|
version: "0"
|
191
148
|
requirements: []
|
192
149
|
|
193
150
|
rubyforge_project:
|
194
|
-
rubygems_version: 1.
|
151
|
+
rubygems_version: 1.6.2
|
195
152
|
signing_key:
|
196
153
|
specification_version: 3
|
197
154
|
summary: Make load and performance testing a fun sport
|