class ApacheBenchSummaryResult
Public Class Methods
new()
click to toggle source
# File lib/herokubench/result.rb, line 84 def initialize() @results = [] end
Public Instance Methods
add_result(ab_result)
click to toggle source
# File lib/herokubench/result.rb, line 88 def add_result(ab_result) @results.push ab_result end
get_progress()
click to toggle source
# File lib/herokubench/result.rb, line 92 def get_progress() @results.collect{|r| r.get_progress}.inject(:+) end
get_summary_result()
click to toggle source
# File lib/herokubench/result.rb, line 100 def get_summary_result() summary_result_hash = {} @results.each do |result| result.result_hash.each do |result_type, res_type_hashes| summary_result_hash[result_type] = {} unless summary_result_hash.has_key? result_type res_type_hashes.each do |result_key, value| summary_result_hash[result_type][result_key] = [] unless summary_result_hash[result_type].has_key? result_key summary_result_hash[result_type][result_key].push value end end end summary_result_hash.each do |result_type, result_hash| result_hash.each do |result_name, result_values| if @@summable_fields.include? result_name summary_result_hash[result_type][result_name] = result_values.inject(:+) elsif @@averageable_fields.include? result_name summary_result_hash[result_type][result_name] = deep_average(result_values) elsif @@maxable_fields.include? result_name summary_result_hash[result_type][result_name] = result_values.max else summary_result_hash[result_type][result_name] = result_values.first end end end summary_result_hash end
print()
click to toggle source
# File lib/herokubench/result.rb, line 129 def print summary = self.get_summary_result() if summary.empty? say("Herokubench ran into an error while executing ApacheBench. It is likely there was a syntax error in your command. Please see output below.", :red) @results.first.result_tfile.rewind @results.first.result_tfile.each_line do |line| puts line end return end say("Cumulative results, summed across dynos",:bold) summary[:generic_result].each{|k,v| printf "%-20s %s\n", k + ":",v} say "" say("Connection Times (ms), median across dynos",:bold) printf "%-20s %-8s %-8s %-8s %s\n", "","min", "mean", "[+/-sd]" ,"median","max" summary[:connection_times].each do |k,v| printf "%-20s %-8s %-8s %-8s %s\n",k +":", v[0], v[1], v[2], v[3], v[4], v[5] end if summary.has_key? :response_time_cdf #valid ab results can have no result CDF if there is only one response say "" say("Percentage of the requests served within a certain time (ms) across dynos", :bold) summary[:response_time_cdf].each{|k,v| printf "\t%-20s %s\n", k,v} end end
unlink()
click to toggle source
# File lib/herokubench/result.rb, line 96 def unlink() @results.each{|r| r.unlink} end