Как настроить автоматическое тестирование веб‑приложений с Selenium

Как настроить автоматическое тестирование веб‑приложений с Selenium

Хотите автоматизировать тестирование сайта и сократить время на рутинные задачи? Рассказали, как настроить автотесты с Selenium, запускать их локально или на сервере и получать отчёты без ручной проверки.

Автоматизированное тестирование позволяет проверять работу веб-приложений без ручного участия, экономя время и силы. Один из самых популярных инструментов для этого — Selenium. В материале объяснили, в каких случаях используется Selenium, как его установить и настроить, а также как запускать тесты как на локальной машине, так и на сервере.

Аренда VPS/VDS от 219 руб/месяц

Преимущества VPS в AdminVPS:

✓ Бесплатное администрирование

✓ Только быстрые NVMe-диски

✓ Защита от DDoS-атак

✓ Быстрая техподдержка

Аренда VPS/VDS виртуального сервера от AdminVPS — это прозрачная и честная услуга с доступной ценой

Зачем использовать Selenium для веб-автотестов

Selenium лого

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

Тесты выполняются в реальных браузерах. Скрипт имитирует действия пользователя настолько точно, насколько это возможно. Благодаря этому автотесты позволяют заранее находить ошибки в интерфейсе и логике работы сайта. Selenium поддерживает все популярные браузеры: Yandex, Google Chrome, Mozilla Firefox, Safari, Edge и другие. Он одинаково хорошо работает на Windows, Linux и macOS, что даёт возможность запускать тесты в разных средах.

Писать тесты в Selenium можно на разных языках программирования. На практике чаще всего используют Python благодаря его лаконичному синтаксису и обширной экосистеме, но доступны и другие языки, например, Java, C#, JavaScript и Ruby. Это даёт разработчику свободу выбора и позволяет интегрировать автотесты в уже существующие проекты. Selenium отлично встраивается в процессы непрерывной интеграции и доставки (CI/CD), позволяя выполнять проверки после каждого изменения в коде.

Установка и настройка Selenium

Чтобы начать автоматическое тестирование с Selenium, необходимо подготовить рабочее окружение. Наиболее удобным выбором для новичков и опытных пользователей считается связка Python + Selenium.

Шаг 1. Установите Python. Если на вашем компьютере ещё нет Python, скачайте последнюю версию с официального сайта. При установке в Windows обязательно отметьте пункт Add Python to PATH, чтобы командная строка знала, где искать интерпретатор. В macOS Python установлен по умолчанию, в Linux его можно добавить через менеджер пакетов, например, командой:

sudo apt install python3

Шаг 2. Создайте виртуальное окружение. Этот шаг необязателен, но он позволит изолировать библиотеки автотестов от других проектов. В терминале выполните команду:

python -m venv selenium_env

где selenium_env — произвольное название окружения. Для активации окружения используется команда, зависящая от операционной системы. На Windows это:

.\selenium_env\Scripts\activate

На Linux и macOS:

source selenium_env/bin/activate

Шаг 3. Установите библиотеку Selenium. После активации виртуального окружения введите команду:

pip install selenium

Эта библиотека позволяет управлять браузерами и выполнять автоматические сценарии. Проверьте, что всё установилось корректно. Введите в Python-терминале команду:

import selenium

Шаг 4. Скачайте драйвер для браузера. Selenium не управляет браузером напрямую. Для работы потребуется установить подходящий драйвер для выбранного браузера:

  • Google Chrome — ChromeDriver,
  • Mozilla Firefox — GeckoDriver,
  • Microsoft Edge — Edge WebDriver,
  • Opera — напрямую своего драйвера не имеет, используется ChromeDriver, так как Opera построена на Chromium,
  • «Яндекс Браузер» — тоже использует ядро Chromium, поэтому подходит ChromeDriver,
  • Safari (macOS) — встроенный safaridriver, он уже предустановлен в системе с macOS 10.12+

Версия драйвера должна соответствовать версии браузера. После скачивания распакуйте драйвер и добавьте его в системный PATH или положите в папку с проектом.

Пример простого теста

Начнём с простого сценария: откроем поисковик Google и проверим, что поиск работает. Этот тест проделает следующее: откроет браузер Chrome, загрузит страницу Google, введёт слово «Selenium» в поисковую строку, нажмёт Enterи. Это закроет браузер. Далее создадим файл test_google.py и укажем в нём следующий код:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# Инициализация браузера (Chrome)
driver = webdriver.Chrome()
# Открытие страницы Google
driver.get("https://www.google.com")
# Поиск поля ввода по имени и ввод запроса
search_box = driver.find_element("name", "q")
search_box.send_keys("Selenium")
search_box.send_keys(Keys.RETURN)
# (Опционально: здесь можно добавить проверку результата поиска)
# Закрытие браузера
driver.quit()

Сначала мы импортируем необходимые модули Selenium. Затем создаём объект webdriver.Chrome(). WebDriver автоматически запустит браузер Chrome, используя скачанный ранее ChromeDriver (если драйвер в PATH, запуск произойдёт без дополнительных настроек). Далее методом get открываем указанный URL — в данном случае главную страницу Google.

Следующая часть скрипта ищет на странице элемент <input> по имени (атрибут name="q" у поисковой строки) и отправляет туда текст «Selenium». Метод find_element_by_name("q") находит первый подходящий элемент. После этого send_keys симулирует печать текста. Мы отправляем строку запроса и затем имитируем нажатие клавиши Enter с помощью «Keys.RETURN». В результате Google должен выполнить поиск по слову «Selenium».

В конце вызывается driver.quit(), чтобы закрыть окно браузера. Этот шаг важен: всегда закрывайте браузер после теста, иначе в памяти могут оставаться запущенные процессы. После выполнения скрипта в консоли Python программа завершится, а браузер закроется.

В этом примере мы лишь имитировали ввод, не проверяя результат. В реальных автотестах нужно удостовериться, что приложение сработало как ожидается. Обычно проверяют, что заголовок страницы содержит «Selenium» или на странице появился нужный элемент. Для этого применяют утверждения (assert) или функции тестовых фреймворков.

Также учитывайте, что элементы могут не сразу появиться на странице. Если скрипт начнёт искать их слишком рано, возникнет ошибка. Чтобы этого избежать, используйте в Selenium явные ожидания с помощью WebDriverWait, который даёт странице время загрузить нужные данные перед тем, как продолжить действия.

Запуск тестов локально

Когда окружение настроено и тест написан, его можно выполнить на своей машине. В случае Python достаточно запустить скрипт через интерпретатор. Например, в терминале перейдите в директорию с файлом и выполните команду:

python test_google.py

При запуске вы увидите, как автоматически открывается окно браузера, курсор сам впечатывает запрос в поисковую строку и происходит поиск. Браузер может открываться на фоне, поэтому не пугайтесь внезапно мелькающего окна, Selenium управляет им программно. После выполнения сценария окно должно закрыться.

На этом этапе можно экспериментировать, пробовать автоматизировать другие действия. Например, открыть собственный сайт и пройтись по ключевым страницам, нажимая на ссылки, или заполнить форму логина на демо-сайте. Запуск тестов локально удобен для отладки: вы визуально наблюдаете, как браузер выполняет заданные шаги, и можете сразу заметить, где что-то пошло не так.

Запуск тестов на сервере (без графического интерфейса)

Вы можете настроить выполнение тестов на удалённой машине, например, на VPS-хостинге, без участия человека, по расписанию или при каждом обновлении продукта. У провайдера AdminVPS вы можете арендовать виртуальный сервер, который работает 24/7. Разместив автотесты там, вы освободите себя от необходимости держать свой компьютер постоянно включённым.

Алгоритм для запуска тестов на сервере тот же, что и локально, но есть несколько нюансов.

Установка окружения на сервере

Подключитесь к VPS по SSH и настройте всё так же, как на своём компьютере: установите Python, затем введите:

pip install selenium

Установите браузер и соответствующий драйвер. На Linux-серверах удобнее использовать Firefox, потому что его можно поставить из стандартного репозитория командой:

sudo apt install firefox-esr

Поставить нужный драйвер можно командой:

sudo apt install geckodriver

Это быстрее, чем вручную скачивать Chrome.

Режим без интерфейса (headless)

Обычный сервер не имеет графической оболочки, там негде отображать окно браузера. К счастью, современные браузеры умеют работать в headless режиме, когда они выполняют все те же действия, но без вывода окна на экран. Чтобы запустить тест в headless-режиме, нужно задать эту опцию в коде перед запуском браузера. Например, для Chrome в Python можно сделать так:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.headless = True          # включаем режим без окна
driver = webdriver.Chrome(options=options)

Логи и отладка

Поскольку при запуске на VPS вы не наблюдаете за браузером напрямую, важно получать информацию о прохождении тестов. Рекомендуется выводить сообщения в консоль или файл логов на каждом шаге, например, «Открыта страница Google», «Введён поисковый запрос» и т.д. Это можно делать через print или с помощью модуля logging. Также полезно настроить сохранение скриншотов при неудачных попытках. Selenium позволяет сделать снимок экрана командой:

driver.save_screenshot("file.png")

Анализ скриншота или логов поможет понять, что случилось, если тест вдруг провалится на удалённой машине.

Автоматизация и расписание

Когда тесты стабильно работают, их можно запускать автоматически. На Linux это делается с помощью cron, чтобы автотесты запускались в нужное время. На Windows можно использовать встроенный планировщик задач. В крупных проектах применяют системы вроде Jenkins или GitLab CI, но для небольших задач достаточно cron.

Для настройки откройте планировщик командой crontab -e и добавьте строку:

0 2 * * * /usr/bin/python3 /home/user/tests/test_script.py

Этот пример запускает скрипт каждый день в 2:00 ночи. Формат cron состоит из пяти частей: минуты, часы, день месяца, месяц, день недели. В примере:

  • 0 — нулевая минута,
  • 2 — 2 часа ночи,
  • * — любое значение (любая дата, месяц, день недели).

Чтобы изменить расписание, подставьте нужные значения. Например, чтобы запускать тесты каждый понедельник в 3:30 утра, укажите:

30 3 * * 1 /usr/bin/python3 /home/user/tests/test_script.py

Автозапуск тестов позволяет перевести проверки в фоновый режим. При обнаружении ошибок скрипт может отправить уведомление или сохранить отчёт на сервере.

Заключение

Selenium помогает превратить ручные проверки сайта в чёткий автоматический процесс. Достаточно один раз настроить окружение и написать сценарий, чтобы тесты стали частью вашего повседневного рабочего процесса. Такой подход экономит время и позволяет оперативно находить ошибки. Чем раньше начнёте применять автотесты, тем легче станет поддерживать стабильную работу веб-приложения в будущем.

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

VPN на VPS-сервере

Узнайте, как создать собственный VPN на VPS-сервере для защиты ваших конфиденциальных данных!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях