Приходилось ли изменять HTTP-заголовок User-Agent в тестах и для каких целей?

«Приходилось ли изменять HTTP-заголовок User-Agent в тестах и для каких целей?» — вопрос из категории Веб-тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, изменение User-Agent — стандартная практика в тестировании для эмуляции различных клиентов.

Основные цели:

  1. Тестирование адаптивного дизайна: Эмуляция мобильных устройств, планшетов.
  2. Проверка серверной логики: Некоторые API или серверные правила (редиректы, контент) зависят от User-Agent.
  3. Обход простых проверок: Некоторые базовые защиты могут блокировать запросы от автоматизированных скриптов (например, с User-Agent, содержащим HeadlessChrome).

Примеры настройки:

Selenium WebDriver (Python):

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15')

driver = webdriver.Chrome(options=options)

Playwright (Python/JS):

# Через контекст браузера
context = await browser.new_context(
    user_agent='My Custom Agent/1.0'
)
page = await context.new_page()

Важно для тестирования: Проверять, что приложение корректно обрабатывает как стандартные, так и нестандартные или пустые значения User-Agent, и что эта функциональность не становится уязвимостью.