Zum Hauptinhalt springen

Browserstack Service

Ein WebdriverIO-Dienst, der lokale Tunnel und Job-Metadaten für BrowserStack-Benutzer verwaltet.

Installation

Der einfachste Weg ist, @wdio/browserstack-service als devDependency in Ihrer package.json zu behalten, über:

npm install @wdio/browserstack-service --save-dev

Anweisungen zur Installation von WebdriverIO finden Sie hier.

Konfiguration

WebdriverIO bietet standardmäßig BrowserStack-Unterstützung. Sie sollten user und key in Ihrer wdio.conf.js-Datei einstellen. Dieses Service-Plugin bietet Unterstützung für BrowserStack Tunnel. Setzen Sie außerdem browserstackLocal: true, um diese Funktion zu aktivieren. Die Meldung des Sessionstatus auf BrowserStack berücksichtigt die strict-Einstellung der Cucumber-Optionen.

// wdio.conf.js
export const config = {
// ...
user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,
services: [
['browserstack', {
testObservability: true,
testObservabilityOptions: {
projectName: "Your project name goes here",
buildName: "The static build job name goes here e.g. Nightly regression"
},
browserstackLocal: true
}]
],
// ...
};

Optionen

Um sich beim BrowserStack-Dienst zu authentifizieren, muss Ihre Konfiguration eine user- und key-Option enthalten.

testObservability

Test Observability ist ein fortschrittliches Test-Reporting-Tool, das Einblicke zur Verbesserung Ihrer Automatisierungstests bietet und Ihnen hilft, schneller zu debuggen. Es ist standardmäßig aktiviert, indem Sie das Flag testObservability​ für alle Benutzer des browserstack-service auf true setzen. Sie können dies deaktivieren, indem Sie das Flag testObservability​ auf false setzen.

Sobald Ihre Tests abgeschlossen sind, können Sie Test Observability besuchen, um Ihre Builds mit zusätzlichen Erkenntnissen wie Unique Error Analysis, Automatic Flaky Test Detection und mehr zu debuggen.

Sie können Test Observability auch verwenden, wenn Sie Ihre Tests nicht auf der BrowserStack-Infrastruktur ausführen. Selbst wenn Sie Ihre Tests auf einer CI, einer lokalen Maschine oder sogar bei anderen Cloud-Dienstanbietern ausführen, kann Test Observability dennoch intelligente Testberichte und erweiterte Analysen zu Ihren Tests erstellen.

Wenn Sie Test Observability nutzen möchten, ohne Ihre Tests auf der BrowserStack-Infrastruktur auszuführen, können Sie Ihre Konfiguration wie folgt festlegen:

// wdio.conf.js
export const config = {
// ...
services: [
['browserstack', {
testObservability: true,
testObservabilityOptions: {
user: process.env.BROWSERSTACK_USERNAME,
key: process.env.BROWSERSTACK_ACCESS_KEY,
projectName: "Your project name goes here",
buildName: "The static build job name goes here e.g. Nightly regression"
}
}]
],
// ...
};

Sie können alle Funktionen von Test Observability in dieser Sandbox erkunden oder mehr darüber hier lesen.

browserstackLocal

Setzen Sie dies auf true, um Verbindungen von der BrowserStack-Cloud über Ihren Computer zu leiten.

Typ: Boolean
Standard: false

forcedStop

Setzen Sie dies auf true, um den BrowserStack Local-Prozess bei Abschluss zu beenden, ohne auf den BrowserStack Local-Stop-Callback zu warten. Dies ist experimentell und sollte nicht von allen verwendet werden. Hauptsächlich als Workaround für dieses Problem erforderlich.

Typ: Boolean
Standard: false

app

Appium setzen Sie dies mit dem lokal auf Ihrem Gerät verfügbaren App-Dateipfad, um die App als Anwendung unter Test für Appium-Sitzungen zu verwenden.

Typ: String oder JsonObject
Standard: undefined

Liste der verfügbaren App-Werte:

path

Verwenden Sie den lokal verfügbaren App-Dateipfad als Anwendung unter Test für Appium.

services: [
['browserstack', {
app: '/path/to/local/app.apk'
// OR
app: {
path: '/path/to/local/app.apk'
}
}]
]

Übergeben Sie custom_id während des App-Uploads.

services: [
['browserstack', {
app: {
path: '/path/to/local/app.apk',
custom_id: 'custom_id'
}
}]
]

id

Verwenden Sie die App-URL, die nach dem Hochladen der App zu BrowserStack zurückgegeben wird.

services: [
['browserstack', {
app: 'bs://<app-id>'
// OR
app: {
id: 'bs://<app-id>'
}
}]
]

custom_id

Verwenden Sie custom_id von bereits hochgeladenen Apps

services: [
['browserstack', {
app: 'custom_id'
// OR
app: {
custom_id: 'custom_id'
}
}]
]

shareable_id

Verwenden Sie shareable_id von bereits hochgeladenen Apps

services: [
['browserstack', {
app: 'username/custom_id'
// OR
app: {
shareable_id: 'username/custom_id'
}
}]
]

preferScenarioName

Nur Cucumber. Setzen Sie den BrowserStack Automate-Sitzungsnamen auf den Szenarionamen, wenn nur ein einzelnes Szenario ausgeführt wurde. Nützlich bei paralleler Ausführung mit wdio-cucumber-parallel-execution.

Typ: Boolean
Standard: false

sessionNameFormat

Passen Sie das BrowserStack Automate-Sitzungsnamenformat an.

Typ: Function
Standard (Cucumber/Jasmine): (config, capabilities, suiteTitle) => suiteTitle
Standard (Mocha): (config, capabilities, suiteTitle, testTitle) => suiteTitle + ' - ' + testTitle

sessionNameOmitTestTitle

Nur Mocha. Hängen Sie den Testtitel nicht an den BrowserStack Automate-Sitzungsnamen an.

Typ: Boolean
Standard: false

sessionNamePrependTopLevelSuiteTitle

Nur Mocha. Stellen Sie den Titel der obersten Suite dem BrowserStack Automate-Sitzungsnamen voran.

Typ: Boolean
Standard: false

setSessionName

Setzen Sie den BrowserStack Automate-Sitzungsnamen automatisch.

Typ: Boolean
Standard: true

setSessionStatus

Setzen Sie den BrowserStack Automate-Sitzungsstatus (bestanden/fehlgeschlagen) automatisch.

Typ: Boolean
Standard: true

buildIdentifier

buildIdentifier ist eine eindeutige ID, um jede Ausführung zu unterscheiden, die dem buildName angehängt wird. Wählen Sie Ihr buildIdentifier-Format aus den verfügbaren Ausdrücken:

  • BUILD_NUMBER: Generiert einen inkrementellen Zähler mit jeder Ausführung
  • DATE_TIME: Generiert einen Zeitstempel mit jeder Ausführung. Bsp. 05-Nov-19:30
services: [
['browserstack', {
buildIdentifier: '#${BUILD_NUMBER}'
}]
]

Build Identifier unterstützt die Verwendung eines oder beider Ausdrücke zusammen mit anderen Zeichen, um benutzerdefinierte Formatierungsoptionen zu ermöglichen.

opts

BrowserStack Local-Optionen.

Typ: Object
Standard: {}

Liste der verfügbaren lokalen Testmodifikatoren, die als opts übergeben werden können:

Local Identifier

Wenn Sie gleichzeitig mehrere lokale Testverbindungen durchführen, setzen Sie dies für verschiedene Prozesse eindeutig -

opts = { localIdentifier: "randomstring" };

Verbose Logging

Um ausführliches Logging zu aktivieren -

opts = { verbose: "true" };

Hinweis - Mögliche Werte für den 'verbose'-Modifikator sind '1', '2', '3' und 'true'

Force Local

Um den gesamten Verkehr über lokale (Ihre) Maschine zu leiten -

opts = { forceLocal: "true" };

Folder Testing

Um lokalen Ordner anstelle eines internen Servers zu testen, geben Sie den Pfad zum Ordner als Wert dieser Option an -

opts = { f: "/my/awesome/folder" };

Force Start

Um andere laufende BrowserStack Local-Instanzen zu beenden -

opts = { force: "true" };

Only Automate

Um lokale Tests für Live und Screenshots zu deaktivieren und nur Automate zu aktivieren -

opts = { onlyAutomate: "true" };

Proxy

Um einen Proxy für lokales Testen zu verwenden -

  • proxyHost: Hostname/IP des Proxys, die restlichen Proxy-Optionen werden ignoriert, wenn diese Option fehlt
  • proxyPort: Port für den Proxy, standardmäßig 3128, wenn -proxyHost verwendet wird
  • proxyUser: Benutzername für die Verbindung zum Proxy (nur Basic Auth)
  • proxyPass: Passwort für USERNAME, wird ignoriert, wenn USERNAME leer ist oder nicht angegeben wird
opts = {
proxyHost: "127.0.0.1",
proxyPort: "8000",
proxyUser: "user",
proxyPass: "password",
};

Local Proxy

Um lokalen Proxy beim lokalen Testen zu verwenden -

  • localProxyHost: Hostname/IP des Proxys, die restlichen Proxy-Optionen werden ignoriert, wenn diese Option fehlt
  • localProxyPort: Port für den Proxy, standardmäßig 8081, wenn -localProxyHost verwendet wird
  • localProxyUser: Benutzername für die Verbindung zum Proxy (nur Basic Auth)
  • localProxyPass: Passwort für USERNAME, wird ignoriert, wenn USERNAME leer ist oder nicht angegeben wird
opts = {
localProxyHost: "127.0.0.1",
localProxyPort: "8000",
localProxyUser: "user",
localProxyPass: "password",
};

PAC (Proxy Auto-Configuration)

Um PAC (Proxy Auto-Konfiguration) beim lokalen Testen zu verwenden -

  • pac-file: Absoluter Pfad der PAC-Datei (Proxy Auto-Konfiguration)
opts = { "pac-file": "<pac_file_abs_path>" };

Binary Path

Standardmäßig versuchen BrowserStack-Local-Wrapper, die neueste Version der BrowserStack-Binärdatei in ~/.browserstack oder dem aktuellen Arbeitsverzeichnis oder dem tmp-Ordner nach Reihenfolge herunterzuladen und auszuführen. Sie können dies jedoch überschreiben, indem Sie das Argument -binarypath übergeben. Pfad zur Angabe des lokalen Binärpfads -

opts = { binarypath: "/path/to/binary" };

Logfile

Um die Logs in eine Datei zu speichern, während Sie mit dem Argument '-v' laufen, können Sie den Pfad der Datei angeben. Standardmäßig werden die Logs in der Datei local.log im aktuellen Arbeitsverzeichnis gespeichert. Um den Pfad zur Datei anzugeben, in der die Logs gespeichert werden -

opts = { verbose: "true", logFile: "./local.log" };

Für weitere Informationen zu WebdriverIO besuchen Sie die Homepage.

Welcome! How can I help?

WebdriverIO AI Copilot