BrowserStack Real Device

Что такое BrowserStack?

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

Зачем использовать реальные устройства?

Тестирование на реальных устройствах имеет несколько преимуществ:

  • Точное поведение приложений: Симуляторы и эмуляторы не всегда точно имитируют поведение реальных устройств, что может привести к пропуску критичных багов.
  • Тестирование с реальными сетями: Важные аспекты, такие как скорость интернета, Wi-Fi и мобильная сеть, могут влиять на функциональность приложения. Использование реальных устройств позволяет учитывать эти особенности.
  • Обширное тестирование устройств: BrowserStack предоставляет доступ к более чем 2000 реальных устройств, включая самые новые модели смартфонов и планшетов.

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

Для интеграции WebdriverIO с BrowserStack необходимо выполнить несколько шагов.

  1. Установка зависимостей Для начала нужно установить сам WebdriverIO и необходимые пакеты. В случае работы с BrowserStack потребуется установить @wdio/browserstack-service:

    npm install @wdio/browserstack-service --save-dev
  2. Конфигурация файла wdio.conf.js Чтобы подключиться к BrowserStack, необходимо настроить конфигурационный файл WebdriverIO. В этом файле будет прописана информация для подключения к BrowserStack, а также выбранное устройство и браузер.

    Пример конфигурации:

    exports.config = {
      user: process.env.BROWSERSTACK_USER,   // Ваш логин BrowserStack
      key: process.env.BROWSERSTACK_KEY,     // Ваш ключ BrowserStack
      services: ['browserstack'],
      capabilities: [{
        'bstack:options': {
          os: 'OS X',
          osVersion: 'Big Sur',
          device: 'iPhone 12',
          realMobile: true,
          local: 'false',
          projectName: 'My Project',
          buildName: 'My Build',
          name: 'Mobile Test on BrowserStack'
        },
        browserName: 'Safari',
        maxInstances: 1
      }],
      specs: ['./tests/**/*.js'],
      logLevel: 'info',
    };

    Здесь ключевые параметры:

    • user и key — ваши учетные данные для BrowserStack.
    • services: ['browserstack'] — подключение сервиса BrowserStack.
    • В блоке capabilities указывается, какое устройство и браузер будут использоваться для тестирования.
    • realMobile: true — указывает на использование реального устройства.
    • local: 'false' — отключает локальные тесты.
  3. Запуск тестов После настройки конфигурации можно запускать тесты на реальных устройствах. Для этого достаточно использовать стандартную команду WebdriverIO:

    npx wdio run wdio.conf.js

    Это запустит тесты на реальном устройстве, выбранном в конфигурации.

Особенности работы с реальными устройствами

  1. Сетевые условия Работая с реальными устройствами, следует учитывать возможные сетевые ограничения, такие как скорость интернета и сетевые задержки. BrowserStack предлагает возможность выбирать различные сети и симулировать их для тестирования производительности.

  2. Совместимость с мобильными операционными системами Для мобильных приложений, тестируемых на устройствах с iOS или Android, важно проверить их совместимость с различными версиями операционных систем. BrowserStack позволяет запускать тесты на нескольких версиях iOS и Android, что важно для поддержания широкой совместимости.

  3. Ограничения в управлении устройствами Хотя BrowserStack предоставляет доступ к большому числу реальных устройств, существует некоторое ограничение на одновременное количество сессий. Если проект требует тестирования на множестве устройств одновременно, важно следить за количеством параллельных сессий.

Управление локальными тестами с BrowserStack

BrowserStack поддерживает локальное тестирование, что позволяет проверять функциональность веб-приложений, находящихся в локальной сети или еще не развернутых на публичных серверах. Для этого можно использовать параметр local: 'true'.

Пример конфигурации для локальных тестов:

capabilities: [{
  'bstack:options': {
    os: 'Windows',
    osVersion: '10',
    device: 'Samsung Galaxy S21',
    realMobile: true,
    local: 'true',
    localIdentifier: 'my-local-testing-session',
    projectName: 'Local Testing Project'
  },
  browserName: 'Chrome',
  maxInstances: 1
}]

Этот параметр позволяет проксировать локальный сервер через BrowserStack и запускать тесты с реальных устройств на локальной машине.

Отладка тестов

BrowserStack предоставляет инструменты для отладки тестов:

  • Логирование — все данные о выполнении теста доступны через WebDriverIO и консоль BrowserStack.
  • Снимки экрана и видео — можно получать снимки экрана на каждом шаге теста, а также видео записи тестовых сессий.
  • Live testing — если необходимо вручную вмешаться в тестовый процесс или изменить его, можно использовать функцию Live testing, которая позволяет запускать сессию на устройстве в реальном времени.

Особенности и ограничения использования BrowserStack

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

  2. Поддержка устройств Несмотря на то, что BrowserStack поддерживает большое количество устройств и браузеров, возможны ситуации, когда нужное устройство или версия браузера отсутствует в списке. В таких случаях можно обратиться в службу поддержки для добавления нужных конфигураций.

  3. Ограничения на количество параллельных тестов Бесплатный тариф и базовые планы имеют ограничения на количество параллельных сессий. Для более масштабных проектов потребуется платная подписка с поддержкой большего числа параллельных тестов.

Заключение

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