Плагин Browsermob rest - Как избежать шифрования части файла har?
Я использую прокси-сервер browsermob, интегрируемый с тестом JUnit, чтобы получить сетевой трафик, который экспортируется в виде файла har. Я могу получить свой файл har успешно, однако есть один раздел "текст", который шифруется. Как я могу избежать этого в моем файле har? Может кто-нибудь мне помочь?
Ниже мой тест Junit:
package DataAnalytics.Events;
import BaseTests.BaseTest;
import common.Application;
import java.io.File;
import java.net.UnknownHostException;
import java.util.concurrent.TimeUnit;
import net.lightbody.bmp.BrowserMobProxyServer;
import net.lightbody.bmp.client.ClientUtil;
import net.lightbody.bmp.mitm.manager.ImpersonatingMitmManager;
import net.lightbody.bmp.proxy.CaptureType;
import net.serenitybdd.junit.runners.SerenityRunner;
import net.thucydides.core.annotations.Story;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
@Story(Application.Example.Examples.class)
@RunWith(SerenityRunner.class)
public class BrowserMobExample extends BaseTest {
String strFilePath = "pathToGenerateHarFile";
static String driverPath = "pathToYourChromeDriver";
@Test
public void main() throws Exception {
BrowserMobProxyServer browserMobProxy = new BrowserMobProxyServer();
browserMobProxy.setTrustAllServers(true);
browserMobProxy.setMitmManager(
ImpersonatingMitmManager.builder().trustAllServers(true).build());
browserMobProxy.start(0);
System.out.println("Port Started On: " + browserMobProxy.getPort());
browserMobProxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT,
CaptureType.RESPONSE_CONTENT, CaptureType.RESPONSE_HEADERS);
WebDriver driver = getDriver_CapProxy(browserMobProxy);
browserMobProxy.newHar("11");
driver.navigate().to("https://www.google.com");
Thread.sleep(15000);
driver.quit();
browserMobProxy.stop();
browserMobProxy.getHar().writeTo(new File(strFilePath));
System.out.println("Loaded browser ");
}
public static WebDriver getDriver_CapProxy(BrowserMobProxyServer browserMobProxy)
throws UnknownHostException {
Proxy proxy = ClientUtil.createSeleniumProxy(browserMobProxy);
proxy.setHttpProxy("localhost:" + browserMobProxy.getPort());
proxy.setProxyType(Proxy.ProxyType.MANUAL);
proxy.setSslProxy("localhost:" + browserMobProxy.getPort());
DesiredCapabilities cap = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("--ignore-certificate-errors");
cap.setCapability(ChromeOptions.CAPABILITY, options);
cap.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new ChromeDriver(cap);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
return driver;
}
}
Ниже приведен пример моего файла har:
"content": {"size": 1599, "mimeType": "text / html", "text": "\ n \ u000B \ n \ tTranslate \u0012\u0012\bٌ \t\u0012 \ u0012 \ RS?\u0015j?
Моя maven зависимость:
<dependency>
<groupId>net.lightbody.bmp</groupId>
<artifactId>browsermob-rest</artifactId>
<version>2.1.5</version>
</dependency>