Sauce Service
WebdriverIO-Service, der eine bessere Integration in Sauce Labs bietet. Dieser Service kann verwendet werden für:
- die Sauce Labs Virtual Machine Cloud (Desktop Web/Emulator/Simulator)
- die Sauce Labs Real Device Cloud (iOS und Android)
Er kann die Job-Metadaten ('name'*, 'passed', 'tags', 'public', 'build', 'custom-data') aktualisieren und startet bei Bedarf Sauce Connect.
Was dieser Service sonst noch für Sie tut:
- Standardmäßig aktualisiert der Sauce Service den 'Namen' des Jobs, wenn der Job startet. Dies gibt Ihnen die Möglichkeit, den Namen zu jedem beliebigen Zeitpunkt zu aktualisieren.
- Sie können einen
setJobName
-Parameter definieren und den Jobnamen entsprechend Ihren Capabilities, Optionen und Suite-Titel anpassen - Der Sauce Service überträgt auch den Fehlerstapel eines fehlgeschlagenen Tests zum Sauce Labs-Befehlstab
- Er ermöglicht Ihnen, Sauce Connect automatisch zu konfigurieren und zu starten
- Und er setzt Kontextpunkte in Ihrer Befehlsliste, um zu identifizieren, welche Befehle in welchem Test ausgeführt wurden
Installation
Am einfachsten ist es, @wdio/sauce-service
als devDependency in Ihrer package.json
zu behalten, über:
npm install @wdio/sauce-service --save-dev
Anweisungen zur Installation von WebdriverIO
finden Sie hier.
Konfiguration
Um den Service für die Virtual Desktop/Emulator/Simulator Machine und Real Device Cloud zu nutzen, müssen Sie user
und key
in Ihrer wdio.conf.js
-Datei festlegen. Es wird automatisch Sauce Labs verwenden, um Ihre Integrationstests auszuführen. Wenn Sie Ihre Tests auf Sauce Labs ausführen, können Sie die Region, in der Sie Ihre Tests ausführen möchten, über die Eigenschaft region
angeben. Verfügbare Kurzbezeichnungen für Regionen sind us
(Standard) und eu
. Diese Regionen werden für die Sauce Labs VM Cloud und die Sauce Labs Real Device Cloud verwendet. Wenn Sie keine Region angeben, wird standardmäßig us
verwendet.
Wenn Sie möchten, dass WebdriverIO automatisch einen Sauce Connect-Tunnel einrichtet, müssen Sie sauceConnect: true
setzen. Wenn Sie das Rechenzentrum auf EU ändern möchten, fügen Sie region:'eu'
hinzu, da das US-Rechenzentrum standardmäßig eingestellt ist.
// wdio.conf.js
export const config = {
// ...
user: process.env.SAUCE_USERNAME,
key: process.env.SAUCE_ACCESS_KEY,
region: 'us', // oder 'eu'
services: [
['sauce', {
sauceConnect: true,
sauceConnectOpts: {
// ...
}
}]
],
// ...
};
Wenn Sie einen bestehenden Sauce Connect-Tunnel verwenden möchten, müssen Sie nur einen tunnelName
angeben. Wenn Sie einen gemeinsam genutzten Tunnel verwenden und nicht der Benutzer sind, der den Tunnel erstellt hat, müssen Sie den Sauce Labs-Benutzer identifizieren, der den Tunnel erstellt hat, um ihn für Ihren Test zu verwenden. Fügen Sie den tunnelOwner
in den Capabilities wie folgt hinzu:
- Tunnel Name
- Tunnel Owner
export const config = {
// ...
{
browserName: 'chrome',
platformName: 'Windows 10',
browserVersion: 'latest',
// Sauce options can be found here https://docs.saucelabs.com/dev/test-configuration-options/
'sauce:options': {
tunnelName: 'YourTunnelName',
// Example options
build: 'your-build-name',
screenResolution: '1600x1200',
// ...
},
},
// ...
};
export const config = {
// ...
{
browserName: 'chrome',
platformName: 'Windows 10',
browserVersion: 'latest',
// Sauce options can be found here https://docs.saucelabs.com/dev/test-configuration-options/
'sauce:options': {
tunnelName: 'TunnelName',
tunnelOwner: '<username of owner>,
// Example options
build: 'your-build-name',
screenResolution: '1600x1200',
// ...
},
},
// ...
};
Sauce Service Optionen
Um den Sauce Labs-Service zu autorisieren, muss Ihre Konfiguration eine user
- und key
-Option enthalten.
maxErrorStackLength
Dieser Service überträgt automatisch den Fehlerstapel an Sauce Labs, wenn ein Test fehlschlägt. Standardmäßig werden nur die ersten 5 Zeilen übertragen, aber bei Bedarf kann dies geändert werden. Beachten Sie, dass mehr Zeilen zu mehr WebDriver-Aufrufen führen können, was die Ausführung verlangsamen könnte.
Typ: number
Standard: 5
sauceConnect
Wenn true
, wird Sauce Connect ausgeführt und eine sichere Verbindung zwischen einer Sauce Labs-virtuellen Maschine hergestellt, die Ihre Browser-Tests ausführt.
Typ: Boolean
Standard: false
sauceConnectOpts
Wenden Sie Sauce Connect-Optionen an (z.B. um Port-Nummer oder logFile-Einstellungen zu ändern). Weitere Informationen finden Sie in dieser Liste.
HINWEIS: Bei der Angabe der Optionen sollte das --
weggelassen werden. Es kann auch in camelCase umgewandelt werden (z.B. shared-tunnel
oder sharedTunnel
).
Typ: Object
Standard: { }
uploadLogs
Wenn true
, lädt diese Option alle WebdriverIO-Protokolldateien auf die Sauce Labs-Plattform zur weiteren Überprüfung hoch. Stellen Sie sicher, dass Sie outputDir
in Ihrer wdio-Konfiguration eingestellt haben, um Protokolle in Dateien zu schreiben, sonst werden Daten an stdout gestreamt und können nicht hochgeladen werden.
Typ: Boolean
Standard: true
setJobName
Ermöglicht Benutzern, den Jobnamen dynamisch basierend auf Worker-Parametern wie WebdriverIO-Konfiguration, verwendeten Capabilities und dem ursprünglichen Suite-Titel festzulegen.
Typ: Function
Standard: (config, capabilities, suiteTitle) => suiteTitle
Überschreiben generierter Name-Metadaten
Der Service generiert automatisch einen Namen für jeden Test aus dem Suite-Namen, Browser-Namen und anderen Informationen.
Sie können dies überschreiben, indem Sie einen Wert für die gewünschte name
-Capability angeben, aber dies hat den Nebeneffekt, dass alle Tests denselben Namen erhalten.
Weitere Informationen zu WebdriverIO finden Sie auf der Homepage.