BrowserMob Proxy の使用に詳しい人はいますか? 助けが必要です。
https://github.com/lightbody/browsermob-proxy/blob/master/README.md
私の目標は、BrowserMob Proxy を使用して、[ネットワーク] タブで特定のイベントが発生したことを検出することです。これを行う方法はありますか?
言語は Java であり、私は Selenium Grid フレームワークを使用しています。
BrowserMob Proxy の使用に詳しい人はいますか? 助けが必要です。
https://github.com/lightbody/browsermob-proxy/blob/master/README.md
私の目標は、BrowserMob Proxy を使用して、[ネットワーク] タブで特定のイベントが発生したことを検出することです。これを行う方法はありますか?
言語は Java であり、私は Selenium Grid フレームワークを使用しています。
次のコードを使用すると、HAR アーカイブを取得できます。
BrowserMobProxy proxy = new BrowserMobProxyServer();
proxy.start(0);
HashSet<CaptureType> enable = new HashSet<CaptureType>();
enable.add(CaptureType.REQUEST_HEADERS);
enable.add(CaptureType.REQUEST_CONTENT);
enable.add(CaptureType.RESPONSE_HEADERS);
proxy.enableHarCaptureTypes(enable);
HashSet<CaptureType> disable = new HashSet<CaptureType>();
disable.add(CaptureType.REQUEST_COOKIES);
disable.add(CaptureType.RESPONSE_COOKIES);
proxy.disableHarCaptureTypes(disable);
//get the Selenium proxy object
Proxy selProxy = ClientUtil.createSeleniumProxy(proxy);
capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, selProxy);
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS,true);
FirefoxProfile profile = new FirefoxProfile();
WebDriver driver = new FirefoxDriver(new FirefoxBinary(),profile,capabilities);
driver.get(url);
Har har = proxy.getHar();
次に、必要に応じて har オブジェクト エントリを調べます。
スクリプトを実行し、HAR 形式で出力を取得したと仮定して、http://pcapperf.appspot.com/にアップロードします。
http://pcapperf.appspot.com/harviewer/index.html?path=examples/en-wikipedia-org.harのような出力が表示されます。
Java での参照用のサンプル コード (必要に応じて変更してください)
package com.selenium.performancetest;
import java.io.FileOutputStream;
import org.browsermob.core.har.Har;
import org.browsermob.proxy.ProxyServer;
import org.openqa.selenium.By;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
public class PerfTest {
public static void main(String[] args) throws Exception {
String strFilePath = "";
// start the proxy
ProxyServer server = new ProxyServer(4444);
server.start();
//captures the moouse movements and navigations
server.setCaptureHeaders(true);
server.setCaptureContent(true);
// get the Selenium proxy object
Proxy proxy = server.seleniumProxy();
// configure it as a desired capability
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);
// start the browser up
WebDriver driver = new FirefoxDriver(capabilities);
// create a new HAR with the label "apple.com"
server.newHar("assertselenium.com");
// open yahoo.com
driver.get("http://assertselenium.com");
driver.get("http://assertselenium.com/2012/10/30/transformation-from-manual-tester-to-a-selenium-webdriver-automation-specialist/");
// get the HAR data
Har har = server.getHar();
FileOutputStream fos = new FileOutputStream(strFilePath);
har.writeTo(fos);
server.stop();
driver.quit();
}
}