Итак, я пытаюсь интегрировать Browsermob в проект Ruby, чтобы я мог редактировать http-ответы.
Я следовал настройке с инструкциями Selenium от Github и другой статьи , которую я нашел о тестировании производительности - что я тоже хочу сделать.
Для этого я взял код из статьи о тестировании производительности, но результаты, которые я получаю, совпадают.
Код
require 'selenium-webdriver'
require 'browsermob/proxy'
require 'rspec-expectations'
include RSpec::Matchers
require 'json'
def configure_proxy
proxy_binary = BrowserMob::Proxy::Server.new('my/path/to/browsermob-proxy-2.1.4/bin/browsermob-proxy')
proxy_binary.start
proxy_binary.create_proxy
end
def browser_profile
browser_profile = Selenium::WebDriver::Firefox::Profile.new
browser_profile.proxy = @proxy.selenium_proxy
browser_profile
end
def setup
@proxy = configure_proxy
@driver = Selenium::WebDriver.for :firefox, profile: browser_profile
end
def teardown
@driver.quit
@proxy.close
end
def capture_traffic
@proxy.new_har
yield
@proxy.har
end
def run
setup
har = capture_traffic { yield }
@har_file = "./selenium_#{Time.now.strftime("%m%d%y_%H%M%S")}.har"
har.save_to @har_file
teardown
end
run do
@driver.get 'http://the-internet.herokuapp.com/dynamic_loading/2'
@driver.find_element(css: '#start button').click
Selenium::WebDriver::Wait.new(timeout: 8).until do
@driver.find_element(css: '#finish')
end
end
performance_results = JSON.parse `yslow --info basic --format json #{@har_file}`
performance_grade = performance_results["o"]
performance_grade.should be > 90
Теперь проблема в том, что, как только я пытаюсь запустить этот код (изолированный от моего проекта или даже внутри него), я получаю:
(.rvm/gems/ruby-2.5.3/gems/rest-client-2.0.2/lib/restclient/abstract_response.rb:220:in 'rescue in exception_with_response': HTTP status code 550 (RestClient::RequestFailed)
Кто-нибудь знает, почему я получу это? Я понимаю, что 550 - это код, который не выполняется, но я не понимаю, зачем мне это?
Любая помощь будет ОЧЕНЬ высоко ценится!