WebdriverIO предоставляет гибкую и мощную систему запуска тестов с возможностью конфигурирования различных параметров и сценариев выполнения. Управление тестами осуществляется через CLI, npm-скрипты и интеграцию с различными тестовыми фреймворками, такими как Mocha, Jasmine и Cucumber.
Для запуска тестов используется команда:
npx wdio run wdio.conf.js
wdio.conf.js — основной файл конфигурации
WebdriverIO, где определены все настройки тестового окружения.
Параметры CLI позволяют изменять поведение запуска без редактирования конфигурации. Например:
--spec — запуск конкретного тестового файла:
npx wdio run wdio.conf.js --spec ./test/specs/login.spec.js--suite — запуск определённого набора тестов,
определённого в suites конфигурации:
npx wdio run wdio.conf.js --suite smoke--maxInstances — ограничение количества параллельно
запускаемых экземпляров браузера:
npx wdio run wdio.conf.js --maxInstances 2Для удобства часто создают скрипты в package.json:
{
"scripts": {
"test": "wdio run wdio.conf.js",
"test:smoke": "wdio run wdio.conf.js --suite smoke",
"test:login": "wdio run wdio.conf.js --spec ./test/specs/login.spec.js"
}
}
Это позволяет запускать тесты простыми командами:
npm run test
npm run test:smoke
npm run test:login
Файл wdio.conf.js управляет большинством параметров
запуска:
capabilities: [
{
browserName: 'chrome',
maxInstances: 2
},
{
browserName: 'firefox',
maxInstances: 1
}
],
mocha, jasmine, cucumber) и его
опции:framework: 'mocha',
mochaOpts: {
ui: 'bdd',
timeout: 60000
},
services: ['selenium-standalone'],
seleniumArgs: {
drivers: {
chrome: { version: 'latest' },
firefox: { version: 'latest' }
}
},
WebdriverIO поддерживает параллельное выполнение тестов на уровне файлов и на уровне инстансов браузера:
maxInstances в capabilities контролирует
количество параллельно открываемых браузеров.parallel в конфигурации запуска через CLI может
быть использована совместно с Test Runner.Пример параллельного запуска двух файлов в Chrome:
npx wdio run wdio.conf.js --spec ./test/specs/*.spec.js --maxInstances 2
suites: {
smoke: ['./test/specs/login.spec.js', './test/specs/dashboard.spec.js'],
regression: ['./test/specs/**/*.spec.js']
}
npx wdio run wdio.conf.js --cucumberOpts.tagExpression "@smoke"
WebdriverIO интегрируется с различными репортерами. В конфигурации указываются используемые репортеры:
reporters: ['spec', ['allure', { outputDir: 'allure-results' }]],
При запуске тестов создаются отчёты, которые можно просматривать после выполнения командой Allure:
npx allure serve allure-results
npx wdio run wdio.conf.js --debug
npx wdio run wdio.conf.js --env dev
beforeSession: function (config, capabilities, specs) {
browser.deleteAllCookies();
}
WebdriverIO легко интегрируется с Jenkins, GitLab CI, GitHub Actions:
stage('Run Tests') {
steps {
sh 'npm ci'
sh 'npm run test'
}
}
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 20
- run: npm ci
- run: npm run test
Эти команды и подходы позволяют организовать гибкий, управляемый и масштабируемый запуск тестов, который подходит как для локальной разработки, так и для автоматизированных CI/CD процессов.