【问题标题】:Why is Browsermob-Proxy-rb w/ Selenium failing to record HTTP traffic arbitrarily?为什么 Browsermob-Proxy-rb w/ Selenium 无法任意记录 HTTP 流量?
【发布时间】:2016-02-19 11:56:58
【问题描述】:

我一直在使用Browsermob Proxy,通过当前版本的browsermob-proxy.rb gem,记录几个RSpec 测试。

不幸的是,它似乎随机无法记录流量。在一些测试运行中,流量被完美记录。在其他情况下,无需对代码或环境进行任何修改,它输出的 har 文件几乎都是空的。测试本身没有问题地通过,但没有记录任何内容。总是会生成 har 文件。

我知道我的所有代码都在通过我的日志运行。所以我不确定问题到底出在哪里。我在下面包含了一些相关代码:

Har 节省逻辑(在测试结束时由 after(:all) 块调用)

  def save_har(test_name,har_dir)
    if @proxy.nil?
      log_proxy_helper "Proxy instance already stopped, cannot save 'har' file"
    else
      log_proxy_helper "Saving har to #{har_dir}"
      filename = ("#{test_name}.har").gsub(' ','_')
      path = File.expand_path(File.join(har_dir , filename))
      if path.match(/^C:\//)
        path.gsub!(/\//, "\\")
      end
      begin
        @proxy.har.save_to path
      rescue Exception => e
        log_proxy_helper "Error: #{e}"
      end
      log_proxy_helper "Saved har to #{path}"
    end
  end

代理创建逻辑(在与上述相同的文件和上下文中)

  def start_proxy
    begin
      log_proxy_helper "Starting proxy using port #{proxy_port}"
      logs_path = 'logs/'
      logs_path = ENV['WORKSPACE'] + '/logs/' if ENV['WORKSPACE']
      @proxy_server = BrowserMob::Proxy::Server.new(browsermob_proxy_path,{:port => 9090,:log => false,:logs_path => logs_path, :use_little_proxy => false, :timeout => 30})
      begin
        @proxy_server.start
      rescue Exception => e
        log_proxy_helper "Error: #{e}"
      end
      @proxy = @proxy_server.create_proxy proxy_port
      @proxy.new_har(:capture_binary_content => true)
    log_proxy_helper "Server Started"
    end if check_proxy_configured 'Can\'t start proxy'
  end

生成的几乎为空的 har 文件之一的示例:

{
    "log": {
        "version": "1.2",
        "creator": {
            "name": "BrowserMob Proxy",
            "version": "2.1.0-beta-3-littleproxy",
            "comment": ""
        },
        "pages": [
            {
                "id": "Page 0",
                "startedDateTime": "2015-11-17T16:18:16.695-05:00",
                "title": "Page 0",
                "pageTimings": {
                    "onLoad": 2916,
                    "comment": ""
                },
                "comment": ""
            }
        ],
        "entries": [],
        "comment": ""
    }
}

有什么想法吗?

编辑: 经过更多测试,我发现这只发生在 Internet Explorer 上; Firefox 和 Chrome 正常录制

【问题讨论】:

    标签: ruby selenium rspec proxy browsermob-proxy


    【解决方案1】:

    如果有人搜索发现这个,原来是我在 Internet Explorer Webdriver 实例化中错误地设置了代理。一个简单的错误导致很多混乱。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-07
      • 1970-01-01
      • 2012-08-12
      • 2012-06-14
      • 2014-11-19
      相关资源
      最近更新 更多