Zum Hauptinhalt springen

Verwenden von Cloud-Diensten

Using on-demand services like Sauce Labs, Browserstack, TestingBot, LambdaTest or Perfecto with WebdriverIO is pretty simple. Alles, was Sie tun müssen, ist user und key in Ihren Optionen zu setzen.

Optional können Sie Ihren Test auch parametrisieren, indem Sie Cloud-spezifische Funktionen wie build Namen festlegen. Wenn Sie Cloud-Dienste nur in einer CI/CD Umgebung ausführen möchten, können Sie die Umgebungsvariable CI verwenden, um zu überprüfen, ob Sie sich in so einer Umgbeung befinden, und die Konfiguration entsprechend ändern.

// 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

Sie können Ihre Tests so einrichten, dass sie in Sauce Labsremote ausgeführt werden.

Die einzige Anforderung besteht darin, die user und key Parameter in Ihrer Konfiguration (entweder exportiert von wdio.conf.js oder übergeben an webdriverio.remote(...)) auf Ihren Sauce Labs Benutzernamen und Zugriffsschlüssel festzulegen .

Sie können auch jede optionale Testkonfiguration als key/value für jeden Browser übergeben.

Sauce Connect

Wenn Sie Tests auf einem Server ausführen möchten, auf den nicht über das Internet zugegriffen werden kann (z. B. auf localhost), müssen Sie Sauce Connectverwenden.

Es liegt außerhalb des Umfangs von WebdriverIO, dies zu unterstützen, daher müssen Sie es selbst starten.

Wenn Sie den WDIO-Testrunner verwenden, nutzen Sie den @wdio/sauce-service um die Konfiguration zu vereinfachen. Der Service hilft dabei Sauce Connect automatisch zu starten und zu beenden.

Mit Travis CI

Travis CI hat Unterstützung zum Starten von Sauce Connect vor jedem Test.

Wenn Sie dies tun, müssen Sie die Testkonfigurationsoption tunnel-identifier in den Capabilities eines jeden Browsers festlegen. Travis setzt dies standardmäßig auf die Umgebungsvariable TRAVIS_JOB_NUMBER.

Wenn Sie möchten, dass Sauce Labs Ihre Tests nach Build-Nummer gruppiert, können Sie build auf TRAVIS_BUILD_NUMBERsetzen.

Wenn Sie schließlich name festlegen, ändert dies den Namen dieses Tests in Sauce Labs für diesen Build. Wenn Sie den WDIO-Testrunner verwenden, nutzen Sie den @wdio/sauce-service um diese Konfiguration zu vereinfachen.

Beispiel capabilities:

browserName: 'chrome',
version: '27.0',
platform: 'XP',
'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
name: 'integration',
build: process.env.TRAVIS_BUILD_NUMBER

Timeouts

Da Sie Ihre Tests remote ausführen, kann es erforderlich sein, einige Timeouts zu erhöhen.

Sie können das Idle-Timeout ändern, indem Sie idle-timeout als Testkonfigurationsoption übergeben. Dies steuert, wie lange Sauce zwischen Befehlen wartet, bevor es die Verbindung schließt.

BrowserStack

WebdriverIO hat auch eine Browserstack Integration.

Die einzige Anforderung besteht darin, die Benutzer und Schlüssel in Ihrer Konfiguration (entweder exportiert durch wdio.conf.js oder übergeben an webdriverio.remote(...)) auf Ihren automatisierten Browserstack-Benutzernamen und Zugriffsschlüssel festzulegen .

Sie können auch jede optionale Testkonfiguration als key/value für jeden Browser übergeben. Wenn Sie browserstack.debug auf true setzen, wird ein Screencast der Sitzung aufgezeichnet, was hilfreich sein könnte.

Lokale Tests

Wenn Sie Tests auf einem Server ausführen möchten, auf den nicht über das Internet zugegriffen werden kann (z. B. auf localhost), müssen Sie Local Testing verwenden.

Es liegt außerhalb des Umfangs von WebdriverIO, dies nativ zu unterstützen, daher müssen Sie dies selbst konfigurieren.

Wenn Sie Tests auf Ihrem Rechner ausführen, sollten Sie in die Capability browserstack.local auf true setzen.

Wenn Sie den WDIO-Testrunner verwenden, laden Sie den @wdio/browserstack-service in Ihrer wdio.conf.jsherunter und konfigurieren Sie diesen. Es hilft dabei, BrowserStack zum Laufen zu bringen, und verfügt über zusätzliche Funktionen, die Ihre Tests besser in den BrowserStack-Dienst integrieren.

Mit Travis CI

Wenn Sie BrowserStacks Tunnel in Travis nutzen möchten, müssen Sie diesen selbst starten.

Das folgende Skript hilft Ihnen, den Server heruntergeladen und ihn im Hintergrund zu starten. Sie sollten dies in Travis ausführen, bevor Sie mit den Tests beginnen.

wget https://www.browserstack.com/browserstack-local/BrowserStackLocal-linux-x64.zip
unzip BrowserStackLocal-linux-x64.zip
./BrowserStackLocal -v -onlyAutomate -forcelocal $BROWSERSTACK_ACCESS_KEY &
sleep 3

Außerdem möchten Sie vielleicht Build auf die Travis-Build-Nummer setzen.

Beispiel capabilities:

browserName: 'chrome',
project: 'myApp',
version: '44.0',
build: `myApp #${process.env.TRAVIS_BUILD_NUMBER}.${process.env.TRAVIS_JOB_NUMBER}`,
'browserstack.local': 'true',
'browserstack.debug': 'true'

TestingBot

Die einzige Anforderung besteht darin, die Benutzer und Schlüssel in Ihrer Konfiguration (entweder exportiert durch wdio.conf.js oder übergeben an webdriverio.remote(...)) auf Ihren TestingBot Benutzernamen und Ihr Geheimnis festzulegen Taste.

Sie können auch beliebige optionale unterstützte Fähigkeiten als Schlüssel/Wert in den Fähigkeiten für jeden Browser übergeben.

Lokale Tests

Wenn Sie Tests auf einem Server ausführen möchten, auf den nicht über das Internet zugegriffen werden kann (z. B. auf localhost), müssen Sie Local Testing verwenden.

Testingbots Tunnel-Support-Seite enthält die Informationen, die erforderlich sind, um dies zum Laufen zu bringen.

Wenn Sie den WDIO-Testrunner verwenden, laden Sie den @wdio/testingbot-service in Ihrer wdio.conf.js herunter und konfigurieren Sie diesen. Es hilft dabei, TestingBot zum Laufen zu bringen, und verfügt über zusätzliche Funktionen, die Ihre Tests besser in den Testingbot-Dienst integrieren.

LambdaTest

LambdaTest Integration ist ebenfalls integriert.

Die einzige Anforderung besteht darin, die Benutzer und Schlüssel in Ihrer Konfiguration (entweder exportiert durch wdio.conf.js oder übergeben an webdriverio.remote(...)) auf den Benutzernamen und Zugriffsschlüssel Ihres LambdaTest-Kontos festzulegen .

Sie können auch beliebige optionale Capabilities als Schlüssel/Wert in den Fähigkeiten für jeden Browser übergeben. Wenn Sie visual auf true setzen, wird ein Screencast der Sitzung aufgezeichnet, was hilfreich sein könnte.

Tunnel für lokale Tests

Wenn Sie Tests auf einem Server ausführen möchten, auf den nicht über das Internet zugegriffen werden kann (z. B. auf localhost), müssen Sie Local Testingverwenden.

Es liegt außerhalb des Umfangs von WebdriverIO, dies nativ zu unterstützen, daher müssen Sie diesen selbst konfigurieren.

Wenn Sie local Anwendungen testen, sollten Sie die Capability tunnel auf true setzen.

Wenn Sie den WDIO-Testrunner verwenden, laden Sie den wdio-lambdatest-service in Ihrer wdio.conf.jsherunter und konfigurieren Sie diesen. Es hilft dabei, LambdaTest zum Laufen zu bringen, und verfügt über zusätzliche Funktionen, die Ihre Tests besser in den LambdaTest-Dienst integrieren.

Mit Travis CI

Wenn Sie Tests auf einem lokalen Server ausführen möchten, müssen Sie einen Tunnel selber starten.

Das folgende Skript hilft Ihnen, den Server herunterzuladen und ihn im Hintergrund zu starten. Sie sollten dies in Travis ausführen, bevor Sie mit den Tests beginnen.

wget http://downloads.lambdatest.com/tunnel/linux/64bit/LT_Linux.zip
unzip LT_Linux.zip
./LT -user $LT_USERNAME -key $LT_ACCESS_KEY -cui &
sleep 3

Außerdem möchten Sie vielleicht build auf die Travis-Build-Nummer setzen.

Beispiel capabilities:

platform: 'Windows 10',
browserName: 'chrome',
version: '79.0',
build: `myApp #${process.env.TRAVIS_BUILD_NUMBER}.${process.env.TRAVIS_JOB_NUMBER}`,
'tunnel': 'true',
'visual': 'true'

Perfecto

Wenn Sie wdio mit Perfectoverwenden, müssen Sie für jeden Benutzer ein Sicherheitstoken erstellen und dieses (zusätzlich zu anderen Capabilities) wie folgt in die Funktionsstruktur einfügen:

export const config = {
capabilities: [{
// ...
securityToken: "your security token"
}],

Darüber hinaus müssen Sie die Cloud-Konfiguration wie folgt hinzufügen:

  hostname: "your_cloud_name.perfectomobile.com",
path: "/nexperience/perfectomobile/wd/hub",
port: 443,
protocol: "https",

Welcome! How can I help?

WebdriverIO AI Copilot