Skip to content

Instantly share code, notes, and snippets.

@akshay-bhardwaj
Last active August 29, 2015 13:56
Show Gist options
  • Save akshay-bhardwaj/9017156 to your computer and use it in GitHub Desktop.
Save akshay-bhardwaj/9017156 to your computer and use it in GitHub Desktop.
require 'time'
bs_response_time_arr = []
client_request_time_arr = []
flag = true
prev_request_time = nil
prev_response_time = nil
class Array
def avg
return 0 if self.length == 0
self.inject(0.0){|x,y| x + y} / self.length
end
def sum
return 0 if self.length == 0
self.inject(0.0){|x,y| x + y}
end
end
File.open(ARGV[0]).readlines.each do |line|
ldate, ltime, ltype = line.split(' ')[0,3]
ltstamp = Time.parse("#{ldate} #{ltime}").to_i
if ltype == "REQUEST"
if prev_response_time
client_request_time_arr << (ltstamp - prev_response_time)
flag = false
end
prev_request_time = ltstamp
elsif ["RESPONSE", "START-SESSEION"].include?(ltype)
if prev_request_time
bs_response_time_arr << (ltstamp - prev_request_time)
flag = true
end
prev_response_time = ltstamp
end
end
# Remove comment to get BS response average
# puts "#{bs_response_time_arr}"
# Remove comment to get client request time
#puts "#{client_request_time_arr}"
puts "#{bs_response_time_arr.length} bs_response_time_avg = #{bs_response_time_arr.avg} | #{client_request_time_arr.length} client_request_time_avg = #{client_request_time_arr.avg}"
puts "Total time taken by BrowserStack: #{bs_response_time_arr.sum} Total Time taken by client #{client_request_time_arr.sum}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment