Для интеграции WebdriverIO с облачным сервисом LambdaTest необходимо корректно настроить проект и определить параметры удалённого подключения. Начинается это с установки WebdriverIO и необходимых зависимостей:
npm init -y
npm install --save-dev @wdio/cli @wdio/local-runner @wdio/mocha-framework @wdio/spec-reporter @wdio/sync webdriverio
После установки запускается конфигурационный мастер:
npx wdio config
В ходе настройки указываются:
LambdaTest предоставляет удалённый Selenium Grid, доступ к которому осуществляется через URL формата:
https://<USERNAME>:<ACCESS_KEY>@hub.lambdatest.com/wd/hub
В конфигурационном файле wdio.conf.js необходимо
определить раздел capabilities для браузеров:
exports.config = {
user: process.env.LT_USERNAME,
key: process.env.LT_ACCESS_KEY,
hostname: 'hub.lambdatest.com',
port: 443,
path: '/wd/hub',
protocol: 'https',
capabilities: [{
browserName: 'chrome',
browserVersion: 'latest',
'LT:Options': {
platformName: 'Windows 11',
build: 'WebdriverIO LambdaTest Build',
name: 'Sample Test',
selenium_version: '4.0.0'
}
}],
framework: 'mocha',
reporters: ['spec'],
mochaOpts: {
ui: 'bdd',
timeout: 60000
}
};
Ключевой момент: все специфические опции LambdaTest указываются
внутри объекта 'LT:Options', что позволяет одновременно
управлять версией браузера, ОС, именем теста и сборкой.
Тесты в WebdriverIO пишутся стандартным образом, с использованием синхронного или асинхронного API. Пример синхронного теста на Mocha:
describe('LambdaTest WebdriverIO Example', () => {
it('Проверка заголовка страницы', () => {
browser.url('https://www.example.com');
const title = browser.getTitle();
expect(title).toEqual('Example Domain');
});
it('Проверка видимости элемента', () => {
browser.url('https://www.example.com');
const heading = $('h1');
expect(heading).toBeDisplayed();
});
});
Для асинхронного варианта используется async/await:
describe('LambdaTest WebdriverIO Async Example', () => {
it('Проверка заголовка страницы', async () => {
await browser.url('https://www.example.com');
const title = await browser.getTitle();
expect(title).toEqual('Example Domain');
});
});
Запуск тестов осуществляется командой:
npx wdio run wdio.conf.js
LambdaTest позволяет запускать тесты на нескольких браузерах
одновременно, что реализуется через массив
capabilities:
capabilities: [
{
browserName: 'chrome',
browserVersion: 'latest',
'LT:Options': {
platformName: 'Windows 10',
build: 'Cross-browser Build',
name: 'Chrome Test'
}
},
{
browserName: 'firefox',
browserVersion: 'latest',
'LT:Options': {
platformName: 'Windows 10',
build: 'Cross-browser Build',
name: 'Firefox Test'
}
}
]
Каждый объект capabilities запускается как отдельная сессия, позволяя параллельно тестировать несколько конфигураций.
LambdaTest поддерживает запись видео и сохранение логов тестов. Для
включения необходимо в 'LT:Options' указать:
'LT:Options': {
video: true,
network: true,
console: true
}
Видео и логи становятся доступны через панель управления LambdaTest, что значительно облегчает анализ ошибок и поведения тестируемого приложения.
WebdriverIO позволяет управлять числом одновременных сессий через
параметр maxInstances:
maxInstances: 5,
Каждая сессия подключается к LambdaTest Grid и выполняется независимо, что ускоряет выполнение полного набора тестов и позволяет экономить время на проверку кросс-браузерной совместимости.
LambdaTest легко интегрируется с системами CI/CD, такими как Jenkins, GitHub Actions, GitLab CI. Достаточно в пайплайне настроить переменные окружения:
LT_USERNAME=<username>
LT_ACCESS_KEY=<access_key>
и запускать npx wdio run wdio.conf.js для
автоматического старта тестов на удалённом Grid.
WebdriverIO предоставляет мощные методы логирования и отладки:
browser.debug() — остановка выполнения для
интерактивной проверки.browser.takeScreenshot() — сохранение скриншота
текущего состояния страницы.console.log и репортеры — вывод подробной информации о
каждом шаге.LambdaTest дополнительно предоставляет возможность отслеживать выполнение каждого шага теста в реальном времени через панель Dashboard.
Эта структура позволяет полностью использовать возможности WebdriverIO совместно с LambdaTest: удалённое выполнение тестов, параллельная проверка нескольких браузеров, запись видео и подробные логи, интеграция с CI/CD и удобное управление сессиями через конфигурационный файл.