使用BrowserMobProxy捕获测试流量

时间:2015-07-09 15:48:36

标签: java selenium performance-testing browsermob browsermob-proxy

我正在尝试设置BrowserMobProxy来捕获性能数据。然而,目前我没有取得多大成功。我发现的大多数(如果不是全部)文档似乎都使用现已弃用的ProxyServer。 BrowserMobProxy git上的文档没有提供任何完整的示例(除非我遗漏了一些内容)。

所以目前我已经启动并运行了代理服务器并且还创建了一个har。但是在测试套件的最后,文件中没有太多内容。

{"log":{"version":"1.2","creator":{"name":"BrowserMob Proxy","version":"2.1.0-beta-1-littleproxy","comment":""},"pages":[{"id":"pageName","startedDateTime":"2015-07-08T16:43:57.838+01:00","title":"pageName","pageTimings":{"comment":""},"comment":""}],"entries":[],"comment":""}}

以下是我目前拥有的代理设置:

在@BeforeSuite中的每个测试套件之前运行:

        BrowserMobProxy server = new BrowserMobProxyServer();
        server.start(0);
        Proxy proxy = new Proxy();
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(CapabilityType.PROXY, proxy);
        driver = new FirefoxDriver(capabilities);
        server.newHar();

然后在@AfterSuite完成测试后

        String timestamp = Long.toString(System.currentTimeMillis()/1000L);
        String strFilePath =  timestamp+ ".har";
        Har har = server.getHar();
        FileOutputStream fos = new FileOutputStream(strFilePath);
        har.writeTo(fos);
        server.stop();
        driver.quit();

任何人都可以填写我需要离开的地方吗?还是指出我正确的方向?

1 个答案:

答案 0 :(得分:2)

为其他任何偶然发现的人做好准备。问题是我正在使用的网站使用ssl。所以我需要将selenium代理配置的setSSLProxy设置为" trustAllSSLCertificates"。所以现在我把它作为我的browsermob代理配置:

server = new BrowserMobProxyServer();
server.start(0);
Proxy proxy = ClientUtil.createSeleniumProxy(server);
proxy.setSslProxy("trustAllSSLCertificates");