Файл wdio.conf.js является ядром конфигурации
WebdriverIO. Он определяет, каким образом будут выполняться тесты, какие
браузеры использовать, как обрабатывать отчёты и логирование, а также
задаёт глобальные настройки фреймворка. Рассмотрим ключевые секции и
параметры.
Конфигурация экспортируется через модуль:
exports.config = {
// настройки
};
Все параметры внутри объекта config управляют поведением
тестовой среды. Этот объект можно условно разделить на несколько
логических блоков: сервер и запуск,
браузеры, фреймворк и тесты,
репортеры, хуки и глобальные
настройки.
Параметры подключения к Selenium или другим драйверам:
hostname: 'localhost',
port: 4444,
path: '/wd/hub',
Для запуска тестов через локальный браузер можно опустить эти
параметры, если используется встроенный сервис
(chromedriver).
Секция capabilities определяет, какие браузеры и с
какими свойствами будут использоваться:
capabilities: [{
maxInstances: 5,
browserName: 'chrome',
'goog:chromeOptions': {
args: ['--headless', '--disable-gpu']
}
}],
'chrome',
'firefox', 'edge' и т.д.Можно определить несколько объектов в массиве
capabilities для кросс-браузерного тестирования.
specs: [
'./test/specs/**/*.js'
],
exclude: [
'./test/specs/example.exclude.js'
],
Для организации тестов обычно используют структуру:
/test
/specs
/pageobjects
/helpers
framework: 'mocha',
mochaOpts: {
ui: 'bdd',
timeout: 60000
},
framework — 'mocha',
'jasmine', 'cucumber'.
mochaOpts / jasmineNodeOpts / cucumberOpts — дополнительные настройки выбранного фреймворка:
ui — стиль написания тестов (bdd или
tdd).timeout — максимальное время выполнения одного
теста.Репортеры отвечают за визуализацию результатов:
reporters: ['spec', ['allure', { outputDir: 'allure-results' }]],
Сервисы расширяют функциональность WebdriverIO:
services: ['chromedriver', 'selenium-standalone'],
Сервисы часто сокращают необходимость ручного управления драйверами.
logLevel: 'info',
bail: 0,
baseUrl: 'http://localhost',
waitforTimeout: 10000,
connectionRetryTimeout: 120000,
connectionRetryCount: 3,
'trace', 'debug', 'info',
'warn', 'error', 'silent'.Хуки позволяют внедрять кастомный код на разных этапах выполнения тестов:
before: function (capabilities, specs) {
console.log('Запуск теста');
},
afterTest: function(test, context, { error, result, duration, passed, retries }) {
if (!passed) {
console.log(`Тест провален: ${test.title}`);
}
}
Основные хуки:
Используются для логирования, скриншотов, отчётов и интеграций.
maxInstances
и несколько capability.before или
globals для общих данных.Файл wdio.conf.js является точкой управления всем
тестовым процессом. Правильная организация конфигурации обеспечивает
стабильность, масштабируемость и удобство сопровождения тестов.