BrowserMob代理问题

时间:2015-07-28 01:00:19

标签: java selenium browsermob-proxy

是否有人熟悉使用BrowserMob Proxy?我需要一些帮助。

  

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

我的目标是尝试使用BrowserMob Proxy来检测网络标签中是否触发了某些事件。知道怎么做吗?

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

2 个答案:

答案 0 :(得分: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对象条目

答案 1 :(得分:0)

  1. 假设您运行脚本并以HAR格式输出,请上传http://pcapperf.appspot.com/

  2. 您会看到http://pcapperf.appspot.com/harviewer/index.html?path=examples/en-wikipedia-org.har

  3. 之类的输出

    示例代码仅供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