Browserstack から Sauce Labs に切り替えようとしています (前者は docker でゾンビ プロセスを生成し、コンテナー全体をハングアップさせます)。すべてがポートに接続してリッスンしているように見えますが、HAR は null です。
私のセットアップは簡単です。テストを実行しているマシンで、コードから BMP と SC の両方を起動します。次に、私のテストは、Web ページを開くリモート WebDriver を起動します (ここでは例として Google を使用します)。次に、このインターネット接続を BMP 経由でプロキシして、すべての分析を取得できるようにする必要があります。
私のBrowserStackでの経験では、うまくいきました。ただし、Sauce Labs とまったく同じセットアップでは、傍受されたものは何もありません。
@BeforeClass
public void SetUp() {
SauceConnectFourManager = new SauceConnectFourManager(true);
browserMobProxyServer = new BrowserMobProxyServer();
browserMobProxyServer.setTrustAllServers(true);
browserMobProxyServer.start(9191);
browserMobProxyServer.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT);
try {
SauceConnectFourManager.openConnection(username, key,4445,
null, "-v --pac file://" + filePath,
null, false, null);
} catch (IOException e) {
e.printStackTrace();
}
DesiredCapabilities caps = DesiredCapabilities.chrome();
caps.setCapability("platform", "Windows 10");
caps.setCapability("version", "latest");
String url = "https://" + username + ":" + key + "@ondemand.saucelabs.com:443/wd/hub";
try {
driver = new RemoteWebDriver(new URL(url), caps);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
@Test
public void TestShouldPass() {
/**
* Goes to Google's page just as an example
*/
driver.get("https://google.com");
System.out.println("title of page is: " + driver.getTitle());
}
@AfterClass
public void TearDown() {
driver.quit();
SauceConnectFourManager.closeTunnelsForPlan(username, null, null);
//har is null here!
Har har = browserMobProxyServer.getHar();
FileOutputStream fos;
try {
fos = new FileOutputStream("debug.har");
har.writeTo(fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
browserMobProxyServer.stop();
}