Skip to content

Instantly share code, notes, and snippets.

@miyucy
Created December 22, 2015 08:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save miyucy/06960775dd6fce9f99ff to your computer and use it in GitHub Desktop.
Save miyucy/06960775dd6fce9f99ff to your computer and use it in GitHub Desktop.
detect heavy assets
begin
class Capybara::Poltergeist::NetworkTraffic::Response
def stage
@data['stage']
end
end
poltergeist_drivers = Capybara
.send(:session_pool)
.each_value.map(&:driver)
.select { |driver| driver.is_a? Capybara::Poltergeist::Driver }
poltergeist_drivers.each do |driver|
begin
_window_handle = driver.browser.window_handle
driver.browser.window_handles.each do |window_handle|
driver.browser.switch_to_window window_handle
network_traffics = []
driver.network_traffic.each do |request|
start_request = request.response_parts.find { |response_part| response_part.stage == 'start' }
end_request = request.response_parts.find { |response_part| response_part.stage == 'end' }
if start_request && end_request
network_traffics << [request.url, end_request.time - start_request.time]
else
network_traffics << [request.url, 0]
end
end
network_traffics.each do |t,u|
puts "%03.03fsec:%s" % [u, t]
end
end
ensure
driver.browser.switch_to_window _window_handle
end
end
nil
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment