Использование облачных сервисов
Использование сервисов по требованию, таких как Sauce Labs, Browserstack, TestingBot, TestMu AI (ранее LambdaTest) или Perfecto с WebdriverIO, довольно просто. Всё, что вам нужно сделать, это указать в настройках user и key вашего сервиса.
Опционально вы также можете параметризовать ваш тест, установив специфичные для облачного сервиса возможности, такие как build. Если вы хотите запускать облачные сервисы только в Travis, вы можете использовать переменную окружения CI, чтобы проверить, находитесь ли вы в Travis, и соответствующим образом изменить конфигурацию.
// wdio.conf.js
export let config = {...}
if (process.env.CI) {
config.user = process.env.SAUCE_USERNAME
config.key = process.env.SAUCE_ACCESS_KEY
}
Sauce Labs
Вы можете настроить свои тесты для удаленного запуска в Sauce Labs.
Единственное требование — установить user и key в вашей конфигурации (либо экспортированной из wdio.conf.js, либо переданной в webdriverio.remote(...)) с вашим именем пользователя Sauce Labs и ключом доступа.
Вы также можете передать любые опциональные параметры конфигурации тестов в виде ключ/значение в capabilities для любого браузера.
Sauce Connect
Если вы хотите запускать тесты против сервера, который недоступен из Интернета (например, на localhost), вам нужно использовать Sauce Connect.
Поддержка этого выходит за рамки WebdriverIO, поэтому вам придется запустить его самостоятельно.
Если вы используете тест-ранн ер WDIO, скачайте и настройте @wdio/sauce-service в вашем wdio.conf.js. Он поможет запустить Sauce Connect и имеет дополнительные функции, которые лучше интегрируют ваши тесты в сервис Sauce.
С Travis CI
Travis CI имеет поддержку для запуска Sauce Connect перед каждым тестом, поэтому следование их инструкциям является вариантом.
Если вы делаете это, вы должны установить параметр конфигурации теста tunnel-identifier в capabilities каждого браузера. Travis устанавливает его по умолчанию в переменную окружения TRAVIS_JOB_NUMBER.
Кроме того, если вы хотите, чтобы Sauce Labs группировал ваши тесты по номеру сборки, вы можете установить build в TRAVIS_BUILD_NUMBER.
Наконец, если вы установите name, это изменит имя этого теста в Sauce Labs для этой сборки. Если вы используете тест-раннер WDIO вместе с @wdio/sauce-service, WebdriverIO автоматически устанавливает правильное имя для теста.
Пример capabilities:
browserName: 'chrome',
version: '27.0',
platform: 'XP',
'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
name: 'integration',
build: process.env.TRAVIS_BUILD_NUMBER
Тайм-ауты
Поскольку вы запускаете тесты удаленно, может потребоваться увеличение некоторых тайм-аутов.
Вы можете изменить тайм-аут бездействия, передав idle-timeout как параметр конфигурации теста. Это контролирует, как долго Sauce будет ждать между командами, прежде чем закрыть соединение.
BrowserStack
WebdriverIO также имеет встроенную интеграцию с Browserstack.
Единственное требование — установить user и key в вашей конфигурации (либо экспортированной из wdio.conf.js, либо переданной в webdriverio.remote(...)) с вашим именем пользователя и ключом доступа Browserstack automate.
Вы также можете передать любые опциональные поддерживаемые возможности в виде ключ/значение в capabilities для любого браузера. Если вы установите browserstack.debug в true, это запишет скринкаст сессии, что может быть полезно.