Настройка user agent

В процессе автоматизации тестирования с использованием Playwright возникает необходимость в настройке различных параметров браузера, включая user agent. Это важный аспект, поскольку он позволяет эмулировать поведение различных устройств и браузеров, что полезно при тестировании веб-приложений на совместимость с разными платформами.

Что такое user agent?

User agent — это строка, которая отправляется браузером на сервер в HTTP-запросах. Она содержит информацию о браузере, операционной системе и устройстве пользователя. Веб-серверы и сайты используют эту строку для того, чтобы понять, с какого устройства или браузера был сделан запрос, и, в случае необходимости, адаптировать отображение контента.

Пример стандартной строки user agent для Chrome на Windows:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36

Зачем нужно настраивать user agent?

Настройка user agent становится необходимой в следующих случаях:

  • Тестирование на разных устройствах и браузерах. Для проверки адаптивности веб-приложений важно убедиться, что сайт корректно отображается как на мобильных устройствах, так и на десктопах.
  • Проверка поведения сайтов с учётом разных платформ. Некоторые веб-сайты могут предоставлять разный контент или функциональность в зависимости от устройства или браузера.
  • Избежание блокировок. В некоторых случаях сайты могут блокировать доступ в зависимости от user agent. Например, если сайт подозревает, что к нему обращается бот.

Как настроить user agent в Playwright?

Playwright позволяет настроить user agent для каждого браузера, который используется в тестах. Это делается с помощью настройки контекста браузера, что позволяет эмулировать различные устройства и браузеры для каждого теста.

1. Создание контекста с пользовательским user agent

Чтобы установить кастомный user agent, нужно создать браузерный контекст и в нём задать соответствующие параметры. Например:

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext({
    userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
  });
  
  const page = await context.newPage();
  await page.goto('https://example.com');
  await browser.close();
})();

В данном примере создаётся контекст браузера с заданной строкой user agent для браузера Chrome на Windows 10. Этот контекст затем используется для открытия страницы, на которой будет задействован кастомный user agent.

2. Изменение user agent для конкретной страницы

Кроме глобальной настройки для контекста, можно также изменить user agent для конкретной страницы. Это может быть полезно, если нужно эмулировать разные устройства на одной и той же тестовой сессии.

const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext();
  const page = await context.newPage();
  
  await page.setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14E304 Safari/602.1');
  await page.goto('https://example.com');
  await browser.close();
})();

В данном примере строка user agent используется для эмуляции iPhone с Safari.

3. Изменение user agent для мобильных устройств

Playwright предоставляет готовые параметры для настройки мобильных браузеров. Например, можно установить user agent и другие характеристики для эмуляции мобильных устройств, таких как iPhone, Android и других.

Для этого можно использовать встроенные параметры устройства, например:

const { chromium, devices } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const context = await browser.newContext({
    ...devices['iPhone 6']
  });
  
  const page = await context.newPage();
  await page.goto('https://example.com');
  await browser.close();
})();

В этом примере используется стандартная конфигурация для устройства iPhone 6. Playwright автоматически установит параметры user agent, разрешение экрана, плотность пикселей и другие характеристики для этого устройства.

Преимущества использования настройки user agent

  • Эмуляция мобильных устройств. Возможность тестировать веб-приложения для мобильных устройств без необходимости физического устройства.
  • Проверка совместимости с различными браузерами. Легко переключаться между различными браузерами и их версиями для тестирования функционала.
  • Управление доступом и обход блокировок. Можно настроить user agent таким образом, чтобы избежать блокировок, настроенных на основе этой строки.

Дополнительные настройки контекста браузера

Помимо user agent, Playwright позволяет также устанавливать другие параметры для контекста браузера, такие как язык, время, геолокация, и многое другое. Пример настройки языка:

const context = await browser.newContext({
  userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
  locale: 'en-US'
});

Таким образом, можно настроить не только сам user agent, но и локализацию тестируемого сайта.

Оценка производительности и совместимости

При настройке user agent важно учитывать, что изменение этой строки может повлиять на результаты тестов. Например, сайты могут адаптировать свои интерфейсы или функциональность в зависимости от user agent. Это стоит учитывать при тестировании на различных устройствах или браузерах.

Заключение

Настройка user agent в Playwright — это мощный инструмент для тестирования веб-приложений на различных устройствах и браузерах. Он позволяет эмулировать разнообразные условия работы, обеспечивая точные и реалистичные тесты. Использование этой функции помогает повысить качество тестирования и уверенность в совместимости приложения с различными платформами.