Браузеры
- Как Testplane работает с браузерами
- Как описать браузеры в конфигурации
- Какие есть источники браузеров: локальные, Docker, облако
- Как выбрать подход под свою задачу
Введение
Testplane запускает тесты в реальных браузерах и не привязан к конкретным версиям или одному источнику браузеров.
Вы описываете нужные браузеры в секции browsers, а параметр gridUrl определяет, откуда их брать: локально, из Docker-грида (например, Selenoid) или из удаленного облака (BrowserStack, Sauce Labs).
Общая схема работы:
- Testplane читает секцию
browsers - Для каждого браузера берет
gridUrl(общий или переопределенный на уровне браузера) - Обращается к гриду и запускает браузер с указанными
desiredCapabilities
Обычно для всех браузеров используют один источник (один gridUrl), но при необходимости его можно задать отдельно для каждого браузера.
Конфигурация бра узеров
Секция browsers описывает, в каких браузерах запускаются тесты.
import type { ConfigInput } from "testplane";
export default {
browsers: {
chrome: {
gridUrl: "local",
desiredCapabilities: {
browserName: "chrome",
browserVersion: "125.0",
},
windowSize: "1920x1080",
headless: true,
},
"chrome-mobile": {
gridUrl: "local",
desiredCapabilities: {
browserName: "chrome",
browserVersion: "125.0",
"goog:chromeOptions": {
mobileEmulation: {
deviceName: "iPhone 12 Pro",
},
},
},
headless: true,
},
},
} satisfies ConfigInput;
Ключ в browsers (chrome, chrome-mobile) — логическое имя браузера. Оно используется в CLI и в отчетах. Имя не ограничивает реальные настройки: в desiredCapabilities можно указать любой browserName и browserVersion.
Версия браузера задается в desiredCapabilities.browserVersion. Для локальных браузеров Testplane скачает нужную версию, если она поддерживается.
windowSize: "1920x1080" задает размер окна, что важно для скриншотных тестов.
Headless-режим
Параметр headless: true включает запуск браузера без графического интерфейса.
Важные моменты:
-
Поведение тестов идентично: с точки зрения тестов браузер с
headless: trueиheadless: falseработает полностью одинаково. Например, при запуске сheadless: trueвсе еще можно делать скриншоты, работать с DOM, выполнять любые команды. -
Параметр обязателен в окружениях без UI: в окружениях, где нет графического интерфейса (например, в CI-джобах), необходимо использовать
headless: true, иначе будут ошибки видаcannot open displayи подобные.
Мобильная эмуляция
Для Chrome используйте goog:chromeOptions.mobileEmulation:
const desiredCapabilities = {
"goog:chromeOptions": {
mobileEmulation: {
deviceName: "iPhone 12 Pro",
},
},
};
Остальные поддерживаемые настройки смотрите в официальной документации.
Для Firefox можно эмулировать мобильный user-agent через moz:firefoxOptions:
const desiredCapabilities = {
"moz:firefoxOptions": {
prefs: {
"general.useragent.override":
"Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15",
"layout.css.devPixelsPerPx": "3.0",
},
args: ["--width=390", "--height=844"],
},
};
Локальные браузеры
Самый простой способ начать работу с Testplane. Тесты запускаются на браузерах и драйверах, установленных на вашей машине.
Установка зависимостей
Скачать все браузеры и драйверы, указанные в конфиге и поддерживающие автоматическую установку:
npx testplane install-deps
Загрузить только выбранные браузеры (по логическому имени из конфига):
npx testplane install-deps chrome-dark
Указать конкретные версии:
npx testplane install-deps chrome@130 firefox@104
По умолчанию браузеры и драйверы скачиваются в директорию .testplane в домашней папке пользователя. Путь можно изменить через переменную окружения TESTPLANE_BROWSERS_PATH:
TESTPLANE_BROWSERS_PATH=./node_modules/.testplane npx testplane install-deps
Удаление браузеров
- Удалите директорию .testplane в домашней папке
- Или удалите каталог, указанный в
TESTPLANE_BROWSERS_PATH
Поддержка браузеров
Ниже представлена таблица поддерживаемых браузеров:
| Браузер | Авто-загрузка | Авто-загрузка драйвера | Запуск webdriver |
|---|---|---|---|
| Chrome | + | + | + |
| Firefox | + | + | + |
| Edge | - | + | + |
| Safari | - | + | + |
Поддерживаемые версии браузеров в зависимости от ОС:
| ОС | Windows | MacOs | Ubuntu 20 | Ubuntu 22 | Ubuntu 24 |
|---|---|---|---|---|---|
| Chrome | 73+ | 73+ | 73+ | 73+ | 73+ |
| Firefox | 60+ | 60+ | 60+ | 91+ | 126+ |
| Edge | * | * | * | * | * |
| Safari | - | * | - | - | - |
*— авто-загрузка браузера не поддерживается, но если браузер установлен пользователем, Testplane будет использов ать установленную версию.
Запуск тестов
Есть два варианта:
- Через CLI-опцию
--local:
npx testplane --local
- Через
gridUrl: "local"в конфигурации:
import type { ConfigInput } from "testplane";
export default {
browsers: {
chrome: {
gridUrl: "local",
desiredCapabilities: {
browserName: "chrome",
browserVersion: "125.0",
},
windowSize: "1920x1080",
headless: true,
},
},
} satisfies ConfigInput;