Class: Siege::Results

Inherits:
Object
  • Object
show all
Defined in:
lib/siege/results.rb

Constant Summary collapse

TRANSACTIONS =
/Transactions:\s*([\d\.]*) hits/
AVAILABILITY =
/Availability:\s*([\d\.]*) %/
DATA_TRANSFERRED =
/Data transferred:\s*([\d\.]*) MB/
ELAPSED_TIME =
/Elapsed time:\s*([\d\.]*) secs/
RESPONSE_TIME =
/Response time:\s*([\d\.]*) secs/
TRANSACTION_RATE =
/Transaction rate:\s*([\d\.]*) trans\/sec/
THROUGHPUT =
/Throughput:\s*([\d\.]*) MB\/sec/
CONCURRENCY =
/Concurrency:\s*([\d\.]*)/
FAILED_REQUESTS =
/Failed transactions:\s*([\d\.]*)/
LONGEST_REQUEST =
/Longest transaction:\s*([\d\.]*)/
SHORTEST_REQUEST =
/Shortest transaction:\s*([\d\.]*)/

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(results) ⇒ Results

Returns a new instance of Results.



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/siege/results.rb', line 31

def initialize(results)
  @results              = results
  @transactions         = Integer parse(:TRANSACTIONS)
  @availability         = Float   parse(:AVAILABILITY)
  @elapsed_time         = Float   parse(:ELAPSED_TIME)
  @data_transferred     = Float   parse(:DATA_TRANSFERRED)
  @response_time        = Float   parse(:RESPONSE_TIME)
  @transaction_rate     = Float   parse(:TRANSACTION_RATE)
  @throughput           = Float   parse(:THROUGHPUT)
  @concurrency          = Float   parse(:CONCURRENCY)
  @failed_requests      = Integer parse(:FAILED_REQUESTS)
  @longest_request      = Float   parse(:LONGEST_REQUEST)
  @shortest_request     = Float   parse(:SHORTEST_REQUEST)
rescue ArgumentError => e
  (e.message.include?('invalid value')) ? dump_results : raise(e)
end

Instance Attribute Details

#availabilityObject (readonly)

Returns the value of attribute availability.



22
23
24
# File 'lib/siege/results.rb', line 22

def availability
  @availability
end

#concurrencyObject (readonly)

Returns the value of attribute concurrency.



22
23
24
# File 'lib/siege/results.rb', line 22

def concurrency
  @concurrency
end

#data_transferredObject (readonly)

Returns the value of attribute data_transferred.



22
23
24
# File 'lib/siege/results.rb', line 22

def data_transferred
  @data_transferred
end

#elapsed_timeObject (readonly)

Returns the value of attribute elapsed_time.



22
23
24
# File 'lib/siege/results.rb', line 22

def elapsed_time
  @elapsed_time
end

#failed_requestsObject (readonly) Also known as: failed

Returns the value of attribute failed_requests.



22
23
24
# File 'lib/siege/results.rb', line 22

def failed_requests
  @failed_requests
end

#longest_requestObject (readonly) Also known as: longest

Returns the value of attribute longest_request.



22
23
24
# File 'lib/siege/results.rb', line 22

def longest_request
  @longest_request
end

#response_timeObject (readonly) Also known as: response

Returns the value of attribute response_time.



22
23
24
# File 'lib/siege/results.rb', line 22

def response_time
  @response_time
end

#shortest_requestObject (readonly) Also known as: shortest

Returns the value of attribute shortest_request.



22
23
24
# File 'lib/siege/results.rb', line 22

def shortest_request
  @shortest_request
end

#throughputObject (readonly)

Returns the value of attribute throughput.



22
23
24
# File 'lib/siege/results.rb', line 22

def throughput
  @throughput
end

#transaction_rateObject (readonly)

Returns the value of attribute transaction_rate.



22
23
24
# File 'lib/siege/results.rb', line 22

def transaction_rate
  @transaction_rate
end

#transactionsObject (readonly)

Returns the value of attribute transactions.



22
23
24
# File 'lib/siege/results.rb', line 22

def transactions
  @transactions
end

Class Method Details

.for(results) ⇒ Object



5
6
7
# File 'lib/siege/results.rb', line 5

def for(results)
  new results
end

Instance Method Details

#[](key) ⇒ Object



48
49
50
# File 'lib/siege/results.rb', line 48

def[](key)
  to_h.fetch(key)
end

#dump_resultsObject



77
78
79
# File 'lib/siege/results.rb', line 77

def dump_results
  abort "A Siege error occurred:\n#{to_s}"
end

#parse(const) ⇒ Object



72
73
74
75
# File 'lib/siege/results.rb', line 72

def parse(const)
  dump_results unless match = self.class.const_get(const).match(to_s)
  match[1]
end

#to_hObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/siege/results.rb', line 56

def to_h
  {
    transactions:         @transactions,
    availability:         @availability,
    elapsed_time:         @elapsed_time,
    data_transferred:     @data_transferred,
    response_time:        @response_time,
    transaction_rate:     @transaction_rate,
    throughput:           @throughput,
    concurrency:          @concurrency,
    failed_requests:      @failed_requests,
    longest_request:      @longest_request,
    shortest_request:     @shortest_request
  }
end

#to_sObject



52
53
54
# File 'lib/siege/results.rb', line 52

def to_s
  @to_s ||= @results
end