class Drnbench::RequestResponse::Configuration

Constants

MIN_DURATION
MIN_WAIT

Attributes

default_hosts[R]
default_method[RW]
default_path[RW]
default_port[RW]
default_timeout[RW]
duration[RW]
end_n_clients[RW]
interval[RW]
mode[RW]
n_fast_requests[RW]
n_requests[RW]
n_slow_requests[RW]
output_path[RW]
report_progressively[RW]
request_patterns_file[RW]
start_n_clients[RW]
step[RW]
wait[RW]

Public Class Methods

new() click to toggle source
# File lib/drnbench/request-response/configuration.rb, line 32
def initialize
  @duration             = 30
  @wait                 = 0.01
  @interval             = 10
  @start_n_clients      = 0
  @end_n_clients        = 1
  @step                 = 1
  @n_requests           = 1000
  @mode                 = :http
  @n_slow_requests      = 5
  @n_fast_requests      = 5

  @default_hosts        = ["localhost"]
  @default_port         = 80
  @default_path         = "/"
  @default_method       = "GET"
  @default_timeout      = 5.0

  @report_progressively = true
  @output_path          = "/tmp/drnbench-result.csv"

  @last_default_host_index = 0
end

Public Instance Methods

default_host() click to toggle source
# File lib/drnbench/request-response/configuration.rb, line 86
def default_host
  host = @default_hosts[@last_default_host_index]
  @last_default_host_index += 1
  if @last_default_host_index == @default_hosts.size
    @last_default_host_index = 0
  end
  host
end
default_hosts=(hosts) click to toggle source
# File lib/drnbench/request-response/configuration.rb, line 81
def default_hosts=(hosts)
  @last_default_host_index = 0
  @default_hosts = hosts
end
request_patterns() click to toggle source
# File lib/drnbench/request-response/configuration.rb, line 77
def request_patterns
  @request_patterns ||= prepare_request_patterns
end
validate() click to toggle source
# File lib/drnbench/request-response/configuration.rb, line 56
def validate
  if @duration.nil?
    raise ArgumentError.new("You must specify the test duration.")
  end
  if @request_patterns_file.nil?
    raise ArgumentError.new("You must specify the path to the request patterns JSON file.")
  end
end

Private Instance Methods

prepare_request_patterns() click to toggle source
# File lib/drnbench/request-response/configuration.rb, line 96
def prepare_request_patterns
  request_patterns = File.read(@request_patterns_file)
  begin
    request_patterns = JSON.parse(request_patterns)
  rescue JSON::ParserError
    # it's a simple text file, list of paths
    request_patterns = request_patterns.strip.split(/\r?\n/)
  end
end