blitz 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
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