使用 BrowserMobProxy 捕获测试流量

Capturing test traffic with BrowserMobProxy

我正在尝试设置 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();

任何人都可以告诉我我需要从这里去哪里吗?或者为我指出正确的方向?

为任何偶然发现此问题的人找出答案。问题是我正在处理的站点使用 ssl。所以我需要将 selenium 代理配置的 SSLProxy 设置为 "trustAllSSLCertificates"。所以现在我留下这个作为我的 browsermob 代理配置:

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