Как получить данные о производительности и сохранить их в JSON, отфильтровывая их в URL через JAVA? - PullRequest
1 голос
/ 26 июня 2019

Я хочу получить данные о производительности, которые я могу записать, используя BowserMob Proxy и Selenium.Я получаю несколько запросов, таких как объявления Google и т. Д. Мне нужно захватить только тот запрос, URL которого совпадает с моим.

Я пробовал его, используя addRequestFilter, но я не понимаю, что это на самом деледелает.

Мой код: @ BeforeTest

public void setUp() {
        proxy = new BrowserMobProxyServer();
        proxy.start(3000);

        Proxy seleniumProxy = ClientUtil.createSeleniumProxy(proxy);

        DesiredCapabilities capabilities = new DesiredCapabilities();

        capabilities.setCapability(CapabilityType.PROXY, seleniumProxy);

        System.setProperty("webdriver.chrome.driver", driverPath + "chromedriver");

        driver = new ChromeDriver(capabilities);

        proxy.addRequestFilter(new RequestFilter() {
            @Override
            public HttpResponse filterRequest(HttpRequest request, HttpMessageContents contents, HttpMessageInfo messageInfo) {
                if (messageInfo.getOriginalUrl().startsWith("https://metrics.makemytrip.com/b/ss/mmtprod/1/JS-2.1.0/")) {

                    proxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_HEADERS);

                    proxy.newHar("Review Page");
                }

                // in the request filter, you can return an HttpResponse object to "short-circuit" the request
                return null;
            }
        });

        driver.get("https://www.makemytrip.com/flight/review/?itineraryId=3b6abb9032ba01211685e3802c4593be775661ed&rKey=RKEY:ec1d5ca5-6b23-48b0-b40f-9f446c63d559:2&crId=fcb56b29-4756-4268-a892-942369e4960a&cur=INR&openFF=undefined&xflt=eyJjIjoiRSIsInAiOiJBLTFfQy0wX0ktMCIsInQiOiIiLCJzIjoiREVMLUJLSy0yMDE5MDcyMiJ9");
}

Мой фильтр должен давать мне только совпадения данных с этим URL-

"request": {
          "method": "GET",
          "url": "https://metrics.makemytrip.com/b/ss/mmtprod/1/JS-2.1.0/s8902900294307?AQB=1&ndh=1&pf=1&t=25%2F5%2F2019%2012%3A17%3A6%202%20-330&mid=49464180872801173040800843530213168686&aamlh=12&ce=UTF-8&ns=makemytrip&cdp=2&fpCookieDomainPeriods=2&pageName=funnel%3Aintl%20flights%3Alisting%20interstitial&g=https%3A%2F%2Fwww.makemytrip.com%2Fflight%2Fsearch%3Fitinerary%3DDEL-BKK-22%2F07%2F2019%26tripType%3DO%26paxType%3DA-1_C-0_I-0%26intl%3Dtrue%26cabinClass%3DE&events=event17%2Cevent18&aamb=RKhpRz8krg2tLO6pguXWp5olkAcUniQYPHaMWWgdJ3xzPWQmdj0y&v15=funnel%3Aintl%20flights%3Alisting%20interstitial&v18=1&c27=%2Fflight%2Fsearch&v27=D%3Dc27&c28=NoServerIP&v28=NoServerIP&c37=VisitorAPI%20Present&c38=49464180872801173040800843530213168686&c41=New%7CNew%7CNew%7CNew&v41=D%3Dc41&v51=D%3Dv0&v52=D%3Dv0&v53=D%3Dv0&v54=D%3Dv0&v55=D%3Dv0&c56=First%20Visit&v56=D%3Dv0&c57=1&v57=D%3Dv0&c74=None&c75=None&v84=49464180872801173040800843530213168686&s=1024x768&c=24&j=1.6&v=N&k=Y&bw=1024&bh=623&mcorgid=1E0D22CE527845790A490D4D%40AdobeOrg&AQE=1",
          "httpVersion": "HTTP/1.1",
          "cookies": [

          ],
          "headers": [

          ],
          "queryString": [
...