For the complete documentation index, see llms.txt. This page is also available as Markdown.

Browser Mob Proxy

Ранее мы уже упоминали этот инструмент, но сейчас нас интересует его возможность собирать данные о производительности. Browser Mob Proxy может собирать данные о производительности и сохранять их в формате HAR.

HAR - это архив, содержащий данные о навигации по world wide web (или AUT), в том числе и данные о клиентской производительности, в формате JSON определенной структуры.

Сохраняются данные следующим образом:

import net.lightbody.bmp.core.har.Har;
import net.lightbody.bmp.proxy.ProxyServer;

import org.junit.Test;
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 SimpleTest {

    @Test
    public void bmpTest() throws Exception {
        // запуск прокси сервера
        ProxyServer server = new ProxyServer(4444);
        server.autoBasicAuthorization("example.com", "username", "password");
        server.start();

        // получение Selenium proxy
        Proxy proxy = server.seleniumProxy();

        // конфигурация FirefoxDriver для использования прокси
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(CapabilityType.PROXY, proxy);

        WebDriver driver = new FirefoxDriver(capabilities);

        // создание HAR с меткой
        server.newHar("mypage.ru");

        // открытие страницы
        driver.get("http://example.com/index");

        // получение данных HAR
        Har har = server.getHar();

        // здесь будет обработка полученных данных
        // например, сохранение файл
        proxy.getHar().writeTo(new File("D://Test.har"));

        driver.quit();
        server.stop();
    }
}

Полученный HAR файл содержит JSON данные, которые можно использовать как текстовую информацию, либо просмотреть в удобном представлении, используя один из существующих инструментов для визуализации (HAR viewer). Например, по адресу http://www.softwareishard.com/har/viewer/

Получить информацию можно и без сохранения HAR файла. Java класс net.lightbody.bmp.core.har.HarLog предоставляет набор методов для выборочного получения нужной информации:

Last updated