wdio.conf.js — это основной файл конфигурации WebdriverIO, который определяет поведение тестового окружения, настройки браузеров, фреймворков, репортеров и других компонентов автоматизированного тестирования. Правильная организация и понимание этого файла критически важны для стабильного и масштабируемого тестирования.
Файл wdio.conf.js экспортирует объект с настройками, в
котором можно выделить несколько ключевых блоков:
Runner и путь до драйвера
exports.config = {
runner: 'local',
path: '/wd/hub',
};
runner — определяет, где будут выполняться тесты:
локально ('local') или через удаленный сервис
('browserstack', 'sauce').path — путь до Selenium Grid или локального сервера
WebDriver. Для большинства локальных сценариев используется
/wd/hub.Тестовые файлы
specs: [
'./test/specs/**/*.js'
],
exclude: [
'./test/specs/ignore/*.js'
],
specs — массив путей до тестовых файлов. Используются
шаблоны glob, позволяющие легко подключать несколько тестов.exclude — массив файлов, которые не должны
запускаться.Capabilities (возможности браузера)
maxInstances: 5,
capabilities: [{
browserName: 'chrome',
'goog:chromeOptions': {
args: ['--headless', '--disable-gpu']
}
}],
maxInstances — максимальное количество параллельных
сессий.
capabilities — массив объектов с настройками
конкретных браузеров.
browserName — имя браузера (chrome,
firefox, edge).args) позволяют запускать его в
headless режиме, отключать уведомления, управлять профилями.Логирование
logLevel: 'info',
outputDir: './logs',
logLevel — уровень логирования (trace,
debug, info, warn,
error, silent).outputDir — директория для хранения логов
WebDriver.Фреймворк тестирования
framework: 'mocha',
mochaOpts: {
ui: 'bdd',
timeout: 60000
},
framework — фреймворк для написания тестов
(mocha, jasmine, cucumber).mochaOpts — настройки для Mocha: стиль интерфейса
(bdd/tdd) и таймауты.Репортеры
reporters: ['spec', ['allure', { outputDir: 'allure-results' }]],
spec — стандартный вывод в консоль.allure — интеграция с Allure Report, требует указания
директории для результатов.Hooks (хуки жизненного цикла тестов) WebdriverIO позволяет использовать хуки для выполнения кода в определенные моменты:
beforeSession: function (config, capabilities, specs) {
console.log('Начало сессии');
},
before: function (capabilities, specs) {
browser.setTimeout({ implicit: 5000 });
},
afterTest: function(test, context, { error, result, duration, passed, retries }) {
if (!passed) {
browser.takeScreenshot();
}
},
onComplete: function(exitCode, config, capabilities, results) {
console.log('Тестирование завершено');
}
beforeSession — выполняется до создания сессии
WebDriver.before — перед каждым тестом, используется для
установки таймаутов и глобальных настроек браузера.afterTest — после выполнения теста, удобно для
скриншотов и логирования ошибок.onComplete — после завершения всех тестов, используется
для генерации отчетов.Настройки таймаутов
waitforTimeout: 10000,
connectionRetryTimeout: 120000,
connectionRetryCount: 3,
waitforTimeout — глобальный таймаут ожидания
элементов.connectionRetryTimeout — время ожидания при проблемах с
соединением WebDriver.connectionRetryCount — количество повторных попыток
подключения.debug или info.Файл wdio.conf.js является ядром автоматизации на
WebdriverIO. Корректная настройка всех блоков — от браузеров до хуков и
репортеров — обеспечивает стабильное, управляемое и масштабируемое
тестирование веб-приложений.