Настройка прокси в Selenium WebDriver без скрытых зависимостей
Selenium передаёт настройки прокси через browser options. Важно, чтобы значения относились к браузеру на узле выполнения, а не только к машине, запускающей тест.
Главное за минуту
- Проверяйте маршрут из среды браузера.
- Не смешивайте системный прокси и capability без документации.
- Сетевую достижимость проверяют именно с browser node.
- Диагностика различает аутентификацию, транспорт, TLS и ответ приложения.
Явная конфигурация
Задавайте proxy type, host и port в options используемого браузера. Конфигурацию храните рядом с описанием тестового окружения, но без секретов.
Опишите конфигурацию типизированными полями protocol, host, port и bypass, а секреты получайте из защищённого хранилища только во время запуска. Проверяйте диапазон порта и допустимые схемы до создания driver. В журнал выводите имя окружения и безопасный идентификатор реквизитов, но не URL с паролем и не заголовок Proxy-Authorization.
Локальный запуск и Grid
В Grid браузер может находиться на другом узле. Адрес localhost тогда указывает на узел браузера, а не на компьютер инженера.
Для Grid составьте таблицу сетевой достижимости между runner, hub, browser node и proxy host. Адрес, доступный с ноутбука инженера, может быть недоступен из контейнера узла. Отдельно проверьте DNS, TCP-подключение и правила исходящего трафика. Используйте нейтральное имя сервиса вместо localhost и закрепите его в конфигурации конкретного окружения.
Диагностический тест
До полного набора проверьте одну разрешённую страницу, ожидаемый код, внешний адрес и второй независимый endpoint. Это отделяет инфраструктуру от логики теста.
Smoke-проверка должна различать 407, отказ TCP, ошибку TLS, HTTP 4xx/5xx и неверный внешний маршрут. Выполните два коротких запроса к разрешённым независимым endpoint и запишите время соединения и общий результат. Если оба endpoint недоступны одинаково, останавливайте suite до тяжёлых сценариев; если падает один, исследуйте целевой сервис отдельно.
Очистка
Завершайте драйвер даже после исключения, чтобы соединения и процессы не накапливались. Реквизиты отзывайте после временного стенда.
Оберните жизненный цикл driver в try/finally и задайте ограниченное время завершения. После прогона контролируйте число процессов браузера, открытых соединений и использованных Grid sessions. Рост этих метрик между сборками означает утечку ресурсов. Временные реквизиты отзывайте после закрытия последней сессии, а не по фиксированному таймеру посреди теста.
Практический чек-лист
- 1Проверьте доступность proxy host из browser node.
- 2Выполните короткий smoke test.
- 3Гарантируйте driver.quit в cleanup.
- 4Проверьте два независимых endpoint до suite.
- 5Контролируйте процессы и Grid sessions после cleanup.
Источники и документы
Материал подготовлен по первичным, официальным и техническим источникам. Формулировки статьи являются самостоятельным изложением.