Как рассчитать общее время для одного запроса из журналов Chrome драйвера PERFORMANCE? - PullRequest
1 голос
/ 02 мая 2019

Я работаю над селеном для отслеживания сетевого трафика для сайта.

Я перешел по двум ссылкам: 1. Использование Selenium как получить сетевой запрос 2. http://chromedriver.chromium.org/logging/performance-log

Я получил данные журнала как после настройки. Вы можете сослаться на пункт 2 для примера данных: Вот что я получил

[2015-03-21T16: 50: 20 + 0400] [INFO] {"message": {"method": "Network.responseReceived", "params": {"frameId": "28480.1", "loaderId ":" 28480,2" , "RequestID": "28480,1", "ответ": { "ConnectionID": 0, "connectionReused" ложь "encodedDataLength": - 1, "fromDiskCache" ложь "fromServiceWorker" ложь, "заголовки": { "Access-Control-Allow-Origin": "*", "Content-Type": "текст / равнинный, кодировка = US-ASCII"}, "MIMETYPE": "/ обычный текст", "протокол ":" данные», "статус": 200, "его статуса": "OK", "URL": "данные:"}, "метка": +1426942217,5344, "Тип": "Другое"}}, "WebView" : "C359224A-06E5-42B6-8D1B-52687733920A"} [2015-03-21T16: 50: 20 + 0400] [INFO] {"message": {"method": "Network.loadingFinished", "params": {"encodedDataLength": 0, "requestId": "28480.1" , "метка времени": 1426942217.5344}}, "WebView": "C359224A-06E5-42B6-8D1B-52687733920A"} [2015-03-21T16: 50: 20 + 0400] [INFO] {"message": {"method": "Page.frameNavigated", "params": {"frame": {"id": "28480.1", "loaderId": "28480,2", "MIMETYPE": "текст / обычный", "securityOrigin": ": //", "URL": "данные :,"}}}, "WebView": "C359224A-06E5- 42B6-8D1B-52687733920A "} [2015-03-21T16: 50: 21 + 0400] [INFO] {"message": {"method": "Page.loadEventFired", "params": {"timestamp": 1426942220.99924}}, "webview": " C359224A-06E5-42B6-8D1B-52687733920A "} [2015-03-21T16: 50: 21 + 0400] [INFO] {"message": {"method": "Page.frameStoppedLoading", "params": {"frameId": "28480.1"}}, "webview" : "C359224A-06E5-42B6-8D1B-52687733920A"} [2015-03-21T16: 50: 21 + 0400] [INFO] {"message": {"method": "Page.domContentEventFired", "params": {"timestamp": 1426942220.99927}}, "webview": " C359224A-06E5-42B6-8D1B-52687733920A "} ....

Но я не знаю, как рассчитать время одного запроса xhr?

Я искал это, но теперь удача ...

1 Ответ

0 голосов
/ 02 мая 2019

после включения журналов PERFORMANCE вы можете перебирать записи журнала, используя:

List<LogEntry> entries = this.driver.manage().logs().get(LogType.PERFORMANCE).getAll();

Затем вы можете получить json со следующими значениями:

private String url;
private Boolean timing;
private Long connectEnd;
private Long connectStart;
private Long dnsEnd;
private Long dnsStart;
private Long receiveHeadersEnd;
private Long sslStart;
private Long sslEnd;
private Long proxyStart;
private Long proxyEnd;
private Long sendStart;
private Long sendEnd;
private String mimeType;
private String requestStatus;
private String method;

, чтобы получить общее время для одного запроса, который вы можете использовать:

sendStart - sendEnd

Создание драйвера Chrome:

    DesiredCapabilities capabilities = new DesiredCapabilities();
    LoggingPreferences logPrefs = new LoggingPreferences();
    logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
    logPrefs.enable(LogType.DRIVER, Level.ALL);
    capabilities.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);

    Map<String, Object> perfLogPrefs = new HashMap<String, Object>();
    perfLogPrefs.put("traceCategories", "browser,devtools.timeline,devtools");
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("perfLoggingPrefs", perfLogPrefs);
    capabilities.setCapability(ChromeOptions.CAPABILITY, options);

    WebDriver driver = new ChromeDriver(capabilities);
...