BrowserMob은 실제로 자신의 리스너를 통과한 트래픽만 기록합니다. Selenium 브라우저 옆에서 프록시를 시작한다고 해서 그 브라우저가 경로에 놓이는 것은 아닙니다.

BrowserMob이 문서화한 2.1.5 내장 API에서는 기존 Java Selenium 구성이 다음 순서를 쓸 수 있습니다.

BrowserMobProxy proxy = new BrowserMobProxyServer();
proxy.start(0);
try {
    ChromeOptions options = new ChromeOptions();
    options.setProxy(ClientUtil.createSeleniumProxy(proxy));
    WebDriver driver = new ChromeDriver(options);
    try {
        proxy.newHar("example-page");
        driver.get("http://www.example.com/");
        Har capture = proxy.getHar();
        capture.writeTo(new java.io.File("page.har"));
    } finally {
        driver.quit();
    }
} finally {
    proxy.stop();
}

포트 0은 사용 가능한 포트를 요청합니다. ClientUtil은 그 리스너에서 Selenium 프록시 설정을 만듭니다. 캡처는 탐색 전에 시작되고 프록시가 아직 사용 가능할 때 가져옵니다.

이 단편은 프로젝트의 BrowserMob, HAR, Selenium 타입이 이미 사용 가능하다고 가정합니다. 요청 또는 응답 본문의 세부 캡처는 추가적인 CaptureType 선택입니다. HTTPS 가로채기에는 의도한 인증서 신뢰 구성도 필요합니다.

원격 Grid 브라우저의 경우 그 브라우저의 머신에서 도달할 수 있는 주소를 알려야 합니다. 테스트 러너의 loopback 주소는 거기서 다른 머신의 loopback을 가리킵니다.

이것은 구성된 브라우저 HTTP 경로를 캡처합니다. 다른 모든 아웃바운드 연결을 막는 운영체제 규칙을 세우지는 않습니다.

관련 글