Браузеры
- Как 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и подобные.