YUKI Hiroshi
null+****@clear*****
Mon Oct 7 17:59:02 JST 2013
YUKI Hiroshi 2013-10-07 17:59:02 +0900 (Mon, 07 Oct 2013) New Revision: fbb6f885900f04cf47de4142bb3028d774772485 https://github.com/droonga/http-benchmark/commit/fbb6f885900f04cf47de4142bb3028d774772485 Message: Add a way to get result Modified files: lib/droonga/http-benchmark/runner.rb Modified: lib/droonga/http-benchmark/runner.rb (+25 -8) =================================================================== --- lib/droonga/http-benchmark/runner.rb 2013-10-07 17:47:03 +0900 (462e838) +++ lib/droonga/http-benchmark/runner.rb 2013-10-07 17:59:02 +0900 (215cdc5) @@ -7,7 +7,7 @@ require "json" module Droonga module HttpBenchmark class Runner - attr_reader :duration, :n_clients + attr_reader :duration, :n_clients, :result MIN_DURATION = 1 DEFAULT_DURATION = 10 @@ -45,6 +45,8 @@ module Droonga def run process_requests analyze_results + output_result + @result end private @@ -131,17 +133,32 @@ module Droonga http_status_percentages.sort! do |a, b| (-1) * (a[:percentage] <=> b[:percentage]) end + sorted_http_statuses = {} + http_status_percentages.each do |status| + sorted_http_statuses[status[:status]] = status[:percentage] + end - puts "Total requests: #{total_n_requests} " + - "(#{total_n_requests.to_f / @duration} queries per second)" + @result = { + :total_n_rewuests => total_n_requests, + :queries_per_second => total_n_requests.to_f / @duration, + :responses => sorted_http_statuses, + :min_elapsed_time => min_elapsed_time, + :max_elapsed_time => max_elapsed_time, + :average_elapsed_time => total_elapsed_time / total_n_requests, + } + end + + def output_result + puts "Total requests: #{@result[:total_n_requests]} " + + "(#{@result[:queries_per_second]} queries per second)" puts "Status:" - http_status_percentages.each do |status| - puts " #{status[:status]}: #{status[:percentage]} %" + @result[:responses].each do |status, percentage| + puts " #{status}: #{percentage} %" end puts "Elapsed time:" - puts " min: #{min_elapsed_time} sec" - puts " max: #{max_elapsed_time} sec" - puts " average: #{total_elapsed_time / total_n_requests} sec" + puts " min: #{@result[:min_elapsed_time} sec" + puts " max: #{@result[:max_elapsed_time} sec" + puts " average: #{@result[:average_elapsed_time]} sec" end def populate_requests -------------- next part -------------- HTML����������������������������...Download