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 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 = "kowsik@gmail.com"
23
+ gem.email = "support@blitz.io"
24
24
  gem.authors = ["pcapr"]
25
25
  gem.version = Blitz::Version
26
26
  gem.executables = ['blitz']
@@ -5,14 +5,14 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{blitz}
8
- s.version = "0.1.7"
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-05-24}
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{kowsik@gmail.com}
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.3.7}
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
@@ -5,7 +5,7 @@ require 'pp'
5
5
 
6
6
  class Blitz # :nodoc:
7
7
  require 'blitz/helper'
8
- Version = "0.1.7".freeze
8
+ Version = "0.1.8"
9
9
 
10
10
  extend Blitz::Helper
11
11
 
@@ -1,3 +1,5 @@
1
+ require 'json'
2
+
1
3
  class Blitz
2
4
  class Client # :nodoc:
3
5
  attr_reader :blitz
@@ -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
- hits = "%u hits" % recent.hits
130
- errors = recent.errors ? ", %u errors" % recent.errors : ''
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
- bps = (recent.rxbytes + recent.txbytes) - (last.rxbytes + last.txbytes)/elapsed
137
- bandwidth = " - %.2f bytes/sec" % bps
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
- bps = (recent.rxbytes + recent.txbytes)/recent.timestamp
140
- bandwidth = " - %.2f bytes/sec" % bps
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
- hash: 21
5
- prerelease: false
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-05-24 00:00:00 -07:00
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
- version_requirements: &id001 !ruby/object:Gem::Requirement
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
- version_requirements: &id002 !ruby/object:Gem::Requirement
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
- version_requirements: &id003 !ruby/object:Gem::Requirement
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
- version_requirements: &id004 !ruby/object:Gem::Requirement
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
- version_requirements: &id005 !ruby/object:Gem::Requirement
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
- requirement: *id005
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
- version_requirements: &id006 !ruby/object:Gem::Requirement
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
- version_requirements: &id007 !ruby/object:Gem::Requirement
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
- requirement: *id007
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: *id007
133
93
  description: Make load and performance testing a fun sport
134
- email: kowsik@gmail.com
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: 3
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.3.7
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