TestingBot сервис

TestingBot — это облачная платформа для автоматизированного тестирования веб-приложений и мобильных интерфейсов. Она предоставляет доступ к широкому набору браузеров, операционных систем и мобильных устройств, что позволяет запускать тесты в условиях, максимально приближенных к реальной эксплуатации. Интеграция с WebdriverIO обеспечивает удобное управление тестами и гибкость в настройке окружения.

Основные возможности TestingBot

  • Поддержка множества браузеров и платформ: Chrome, Firefox, Safari, Edge, Internet Explorer, мобильные браузеры на Android и iOS.
  • Облачная инфраструктура: возможность параллельного запуска тестов на множестве устройств без необходимости локального поддержания среды.
  • Автоматическое логирование и запись сессий: видео, скриншоты и логи запросов позволяют легко анализировать ошибки.
  • Поддержка Selenium и WebDriver протоколов: совместимость с WebdriverIO без дополнительных адаптаций.

Настройка WebdriverIO для работы с TestingBot

Для интеграции необходимо установить WebdriverIO и настроить конфигурацию для удаленного подключения к TestingBot. Основные шаги включают:

  1. Установка зависимостей:
npm install @wdio/cli @wdio/local-runner @wdio/mocha-framework @wdio/sync webdriverio
  1. Создание файла конфигурации wdio.conf.js:
exports.config = {
    user: process.env.TESTINGBOT_KEY,
    key: process.env.TESTINGBOT_SECRET,
    services: ['testingbot'],
    runner: 'local',
    specs: ['./test/specs/**/*.js'],
    capabilities: [{
        browserName: 'chrome',
        version: 'latest',
        platform: 'WIN10',
        name: 'WebdriverIO Test'
    }],
    logLevel: 'info',
    framework: 'mocha',
    mochaOpts: {
        ui: 'bdd',
        timeout: 60000
    }
};
  • user и key — данные учетной записи TestingBot. Рекомендуется хранить их в переменных окружения.
  • capabilities — описание окружения для запуска тестов. Можно задавать различные комбинации браузеров и платформ для параллельного тестирования.

Параллельное выполнение тестов

TestingBot позволяет запускать несколько сессий одновременно, что значительно сокращает время тестирования. В WebdriverIO для этого используется параметр maxInstances:

capabilities: [{
    browserName: 'chrome',
    maxInstances: 5,
    version: 'latest',
    platform: 'WIN10',
}]

Каждый инстанс запускается в отдельной виртуальной среде TestingBot. Логи и видео каждой сессии доступны через панель управления платформы.

Работа с отчетами и видео

TestingBot автоматически собирает информацию о выполнении тестов:

  • Видео сессий — можно воспроизвести для анализа ошибок.
  • Скриншоты — создаются при падении теста, легко подключаются к отчётам Mocha или Allure.
  • Логи команд WebDriver — позволяют отслеживать последовательность действий браузера.

Пример включения Allure отчетности:

exports.config = {
    reporters: ['spec', ['allure', {
        outputDir: 'allure-results',
        disableWebdriverStepsReporting: false,
        disableWebdriverScreenshotsReporting: false,
    }]]
};

Настройка сетевых ограничений и геолокации

TestingBot поддерживает эмуляцию различных сетевых условий и географических регионов. В capabilities можно указать:

capabilities: [{
    browserName: 'chrome',
    network: '3G', // эмуляция медленного соединения
    location: 'US', // геолокация для тестирования региональных особенностей
}]

Это особенно полезно для проверки производительности и адаптивности веб-приложений.

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

TestingBot легко интегрируется с системами непрерывной интеграции:

  • Jenkins, GitHub Actions, GitLab CI: запуск тестов в облаке без локальной инфраструктуры.
  • Параллельные пайплайны: сокращение времени тестирования за счет одновременного выполнения нескольких сессий.
  • Автоматическое уведомление о результатах: отчеты отправляются в Slack, электронную почту или другие инструменты.

Управление сессиями и отчетами через API

TestingBot предоставляет REST API для получения информации о сессиях, статусе тестов и видео. Пример запроса для получения информации о последней сессии:

curl -u "KEY:SECRET" https://api.testingbot.com/v1/tests

В WebdriverIO можно комбинировать это с хуками, чтобы автоматически выгружать отчеты после завершения тестов:

onComplete: function(exitCode, config, capabilities, results) {
    console.log('Тестирование завершено, можно выгружать видео и логи через API');
}

Советы по стабильности тестов

  • Использовать ожидания элементов (waitForExist, waitForDisplayed) вместо статических задержек.
  • Разделять тесты на независимые сценарии для корректной параллельной работы.
  • Логи и видео с TestingBot использовать для быстрого выявления проблем с синхронизацией или визуальными багами.
  • Регулярно обновлять версии браузеров и драйверов в конфигурации, чтобы избегать несовместимостей.

TestingBot обеспечивает гибкую и масштабируемую платформу для WebdriverIO-тестирования, позволяя автоматизировать проверку веб-приложений в условиях максимально приближенных к реальной эксплуатации, с удобным управлением сессиями, логами и видео.