Class: Benchmark::HTTP::Statistics

Inherits:
Stopwatch
  • Object
show all
Defined in:
lib/benchmark/http/statistics.rb

Instance Attribute Summary collapse

Attributes inherited from Stopwatch

#concurrency, #samples

Instance Method Summary collapse

Methods inherited from Stopwatch

#average, #count, #duration, #latency, #measure, #per_second, #sample, #sequential_duration, #similar?, #standard_deviation, #standard_error, #valid?, #variance

Constructor Details

#initializeStatistics

Returns a new instance of Statistics.



156
157
158
159
160
161
# File 'lib/benchmark/http/statistics.rb', line 156

def initialize(*)
	super
	
	# The count of the status codes seen in the responses:
	@responses = Hash.new{|h,k| 0}
end

Instance Attribute Details

#responsesObject (readonly)

Returns the value of attribute responses.



163
164
165
# File 'lib/benchmark/http/statistics.rb', line 163

def responses
  @responses
end

Instance Method Details

#add(duration, result) ⇒ Object



169
170
171
172
173
# File 'lib/benchmark/http/statistics.rb', line 169

def add(duration, result)
	super
	
	@responses[result.status] += 1
end

#failedObject



165
166
167
# File 'lib/benchmark/http/statistics.rb', line 165

def failed
	@responses.sum{|status, count| status >= 400 ? count : 0}
end


175
176
177
178
179
180
181
182
183
# File 'lib/benchmark/http/statistics.rb', line 175

def print(out = STDOUT)
	if valid?
		counts = @responses.sort.collect{|status, count| "#{count}x #{status}"}.join("; ")
		
		out.puts "#{@samples.size} samples: #{counts}. #{per_second.round(2)} requests per second. S/D: #{Seconds[standard_deviation]}."
	else
		out.puts "Not enough samples."
	end
end