【问题标题】:BrowserMob Proxy QuestionsBrowserMob 代理问题
【发布时间】:2015-07-28 01:00:18
【问题描述】:

有人熟悉使用 BrowserMob 代理吗?我需要帮助。

https://github.com/lightbody/browsermob-proxy/blob/master/README.md

我的目标是尝试使用 BrowserMob 代理来检测在网络选项卡中触发的某些事件。知道怎么做吗?

语言是 Java,我使用的是 Selenium Grid 框架。

【问题讨论】:

    标签: java selenium browsermob-proxy


    【解决方案1】:

    使用以下代码,您可以获得 HAR 存档。

    BrowserMobProxy proxy = new BrowserMobProxyServer();
    proxy.start(0);
    HashSet<CaptureType> enable = new HashSet<CaptureType>();
    enable.add(CaptureType.REQUEST_HEADERS);
    enable.add(CaptureType.REQUEST_CONTENT);
    enable.add(CaptureType.RESPONSE_HEADERS);
    proxy.enableHarCaptureTypes(enable);
    HashSet<CaptureType> disable = new HashSet<CaptureType>();
    disable.add(CaptureType.REQUEST_COOKIES);
    disable.add(CaptureType.RESPONSE_COOKIES);
    proxy.disableHarCaptureTypes(disable);
    
    //get the Selenium proxy object
    Proxy selProxy = ClientUtil.createSeleniumProxy(proxy);
    
    capabilities = new DesiredCapabilities();
    capabilities.setCapability(CapabilityType.PROXY, selProxy);
    capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS,true);
    
    FirefoxProfile profile = new FirefoxProfile();
    WebDriver driver = new FirefoxDriver(new FirefoxBinary(),profile,capabilities);
    
    
    driver.get(url);
    
    Har har = proxy.getHar();
    

    然后根据需要探索 har 对象条目

    【讨论】:

      【解决方案2】:
      1. 假设您运行脚本并获得了 HAR 格式的输出,请上传至 http://pcapperf.appspot.com/

      2. 你会看到类似http://pcapperf.appspot.com/harviewer/index.html?path=examples/en-wikipedia-org.har的输出

      Java 中的示例代码仅供参考(请根据需要更改)

      package com.selenium.performancetest;
      
      import java.io.FileOutputStream;
      import org.browsermob.core.har.Har;
      import org.browsermob.proxy.ProxyServer;
      import org.openqa.selenium.By;
      import org.openqa.selenium.Proxy;
      import org.openqa.selenium.WebDriver;
      import org.openqa.selenium.firefox.FirefoxDriver;
      import org.openqa.selenium.remote.CapabilityType;
      import org.openqa.selenium.remote.DesiredCapabilities;
      
      public class PerfTest {
      
      public static void main(String[] args) throws Exception {
      
      String strFilePath = "";
      
      // start the proxy
      ProxyServer server = new ProxyServer(4444);
      server.start();
      //captures the moouse movements and navigations
      server.setCaptureHeaders(true);
      server.setCaptureContent(true);
      
      // get the Selenium proxy object
      Proxy proxy = server.seleniumProxy();
      
      // configure it as a desired capability
      DesiredCapabilities capabilities = new DesiredCapabilities();
      capabilities.setCapability(CapabilityType.PROXY, proxy);
      
      // start the browser up
      WebDriver driver = new FirefoxDriver(capabilities);
      
      // create a new HAR with the label "apple.com"
      server.newHar("assertselenium.com");
      
      // open yahoo.com
      driver.get("http://assertselenium.com");
      
      driver.get("http://assertselenium.com/2012/10/30/transformation-from-manual-tester-to-a-selenium-webdriver-automation-specialist/");
      
      // get the HAR data
      Har har = server.getHar();
      FileOutputStream fos = new FileOutputStream(strFilePath);
      har.writeTo(fos);
      server.stop();
      driver.quit();
      
      }
      
      }
      

      Reference

      【讨论】:

        猜你喜欢
        • 2018-04-23
        • 1970-01-01
        • 2015-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-29
        • 1970-01-01
        相关资源
        最近更新 更多