LambdaTest сервис

Для интеграции 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

В ходе настройки указываются:

  • Тип фреймворка тестирования (например, Mocha).
  • Локальный или удалённый запуск.
  • Репортинг (Spec, Allure и т.д.).
  • Настройка Selenium Grid (для LambdaTest нужно указать URL удалённого хоста).

Конфигурация удалённого подключения

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 и выполняется независимо, что ускоряет выполнение полного набора тестов и позволяет экономить время на проверку кросс-браузерной совместимости.

Интеграция с CI/CD

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 и удобное управление сессиями через конфигурационный файл.