Zum Hauptinhalt springen

Konfiguration

Basierend auf dem Setup-Type (z. B. die Verwendung der Raw-Protokollbindungen, WebdriverIO als eigenständiges Paket oder der WDIO-Testrunner) stehen verschiedene Optionen zur Verfügung, um die Umgebung zu steuern.

WebDriver-Optionen

Bei Verwendung des Protokollpakets webdriver sind folgende Optionen definiert:

protocol

Bei der Kommunikation mit dem Browser Treibers zu verwendendes Protokoll.

Type: String
Default: http

hostname

Host Ihres Browser Treibers.

Type: String
Default: localhost

port

Port für den Browser Treiber.

Type: Number
Default: 4444

path

Pfad zum Browser Treiber Endpunkt.

Type: String
Default: /

queryParams

Queryparameter, die an den Browser Treiber weitergegeben werden.

Type: Object
Default: null

user

Ihr Cloud-Service-Benutzername (funktioniert nur für Sauce Labs, Browserstack, TestingBot, CrossBrowserTesting oder LambdaTest Konten). Wenn festgelegt, stellt WebdriverIO automatisch Verbindungsoptionen für Sie ein. Wenn Sie keinen Cloud-Anbieter verwenden, kann dies verwendet werden, um jedes andere WebDriver-Backend zu authentifizieren.

Type: String
Default: null

key

Ihr Cloud-Service-Benutzername (funktioniert nur für Sauce Labs, Browserstack, TestingBot, CrossBrowserTesting oder LambdaTest Konten). Wenn festgelegt, stellt WebdriverIO automatisch Verbindungsoptionen für Sie ein. Wenn Sie keinen Cloud-Anbieter verwenden, kann dies verwendet werden, um jedes andere WebDriver-Backend zu authentifizieren.

Type: String
Default: null

capabilities

Definiert die Capabilities, die Sie in Ihrer WebDriver-Sitzung ausführen möchten. Sehen Sie sich das WebDriver-Protokoll für weitere Details an. Wenn Sie einen älteren Treiber ausführen, der das WebDriver-Protokoll nicht unterstützt, müssen Sie die JSONWireProtocol-Funktionen verwenden, um eine Sitzung erfolgreich auszuführen.

Neben den WebDriver-basierten Funktionen können Sie browser- und Cloud-Vendor-spezifische Optionen anwenden, die eine tiefere Konfiguration für den Remote-Browser oder das Remote-Gerät ermöglichen. Diese sind in den entsprechenden Herstellerunterlagen dokumentiert, z. B.:

Ein nützliches Dienstprogramm ist außerdem der Sauce Labs Automated Test Configurator, der Ihnen hilft, dieses Objekt zu erstellen, indem Sie Ihre gewünschten Capability zusammenklicken.

Type: Object
Default: null

Beispiel:

{
browserName: 'chrome', // options: `chrome`, `edge`, `firefox`, `safari`
browserVersion: '27.0', // browser version
platformName: 'Windows 10' // OS platform
}

Wenn Sie Web- oder native Tests auf Mobilgeräten ausführen, unterscheiden sich Capabilities vom WebDriver-Protokoll. Siehe Appium Docs für weitere Details.

logLevel

Grad der Ausführlichkeit des Loggings.

Type: String
Default: info
Options: trace | debug | info | warn | error | silent

outputDir

Verzeichnis zum Speichern aller Testrunner-Logdateien (inklusive Reporter-Logs und wdio Logs). Wenn nicht festgelegt, werden alle Protokolle an stdout weitergeleitet. Da die meisten Reporter ihre Information an das stdout weitergeben, wird empfohlen, diese Option nur für bestimmte Reporter zu verwenden, bei denen es sinnvoller ist, den Bericht in eine Datei zu verschieben (wie zum Beispiel den junit Reporter).

Bei der Ausführung im Standalone Modus ist die einzige generierte Log Datei die wdio Log Datei.

Type: String
Default: null

connectionRetryTimeout

Timeout für jede WebDriver-Befehl, der an einen Treiber oder ein Grid gesendet wird.

Type: Number
Default: 120000

connectionRetryCount

Maximale Anzahl von Wiederholungsversuchen für Befehle an den Browser Treiber.

Type: Number
Default: 3

agent

Ermöglicht Ihnen, einen benutzerdefiniertenhttp/https/http2 Agenten zu verwenden, um Anfragen zu stellen.

Type: Object
Default:

{
http: new http.Agent({ keepAlive: true }),
https: new https.Agent({ keepAlive: true })
}

headers

Geben Sie benutzerdefinierte header an, die an jeden WebDriver-Befehl übergeben werden oder wenn über Puppeteer mithilfe des CDP-Protokolls eine Verbindung zum Browser hergestellen wollen.

caution

Diese Header werden nicht an Anfragen, die im Browser gestellt werden, übergeben. Wenn Sie nach dem Ändern von Browser Requests suchen, schauen Sie sich bitte #6361 an!

Type: Object
Default: {}

transformRequest

Funktion, die HTTP-Requests abfängt, bevor ein WebDriver Befehl gesendet wird

Type: (RequestOptions) => RequestOptions
Default: none

transformResponse

Funktion, die HTTP-Responses abfängt, nachdem das Resultat eines WebDriver-Befehls eingetroffen ist. Der Funktion wird das ursprüngliche Antwortobjekt als Erstes und die entsprechenden Request Option als zweites Argument übergeben.

Type: (Response, RequestOptions) => Response
Default: none

strictSSL

Legt fest, ob ein gültiges SSL-Zertifikat erforderlich ist. Es kann über eine Umgebungsvariable als STRICT_SSL oder strict_sslgesetzt werden.

Type: Boolean
Default: true

enableDirectConnect

Aktiviere Appium direct connection feature. Es tut nichts, wenn die Antwort keine richtigen Schlüssel hatte, während das Flag aktiviert ist.

Type: Boolean
Default: true

cacheDir

The path to the root of the cache directory. This directory is used to store all drivers that are downloaded when attempting to start a session.

Type: String
Default: process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()


WebdriverIO

Die folgenden Optionen (einschließlich der oben aufgeführten) können mit WebdriverIO im Standalone-Modus verwendet werden:

automationProtocol

Definieren Sie das Protokoll, das Sie für Ihre Browserautomatisierung verwenden möchten. Derzeit werden nur webdriver und devtools unterstützt, da dies die wichtigsten verfügbaren Browser-Automatisierungstechnologien sind.

Wenn Sie den Browser mit devtoolsautomatisieren möchten, stellen Sie sicher, dass Sie das notwendige NPM-Paket installiert haben ($ npm install --save-dev devtools).

Type: String
Default: webdriver

baseUrl

Kürzen Sie url Befehle ab, indem Sie eine Basis-URL festlegen.

  • Wenn Ihr Parameter url mit /beginnt, wird baseUrl vorangestellt (mit Ausnahme des Pfads baseUrl, falls vorhanden).
  • Wenn Ihr Parameter url ohne Schema oder / (wie some/path) beginnt, wird die vollständige baseUrl direkt vorangestellt.

Type: String
Default: null

waitforTimeout

Standard-Timeout für alle waitFor* -Befehle. (Beachten Sie den Kleinbuchstaben f im Optionsnamen.) (Beachten Sie den Kleinbuchstaben f im Optionsnamen.) (Beachten Sie den Kleinbuchstaben f im Optionsnamen.) Diese Zeitüberschreitung nur wirkt sich auf Befehle aus, die mit waitFor* und ihrer Standardwartezeit beginnen.

Informationen zum Erhöhen des Timeouts für einen _Test_finden Sie in der Framework-Dokumentation.

Type: Number
Default: 3000

waitforInterval

Standardintervall für alle waitFor* Befehle, um zu prüfen, ob ein erwarteter Zustand (z. B. Element Sichtbarkeit) geändert wurde.

Type: Number
Default: 500

region

If running on Sauce Labs, you can choose to run tests between different data centers: US or EU. Um Ihre Region in EU zu ändern, fügen Sie region: 'eu' zu Ihrer Konfiguration hinzu.

Hinweis: Dies hat nur Auswirkungen, wenn Sie user und key, die mit Ihrem Sauce Labs-Konto verbunden sind, in Ihren Options bereitstellen.

Type: String
Default: us

(nur für VM und oder Emu/Simu-latoren)


Testrunner Options

Die folgenden Optionen (einschließlich der oben aufgeführten) sind nur für die Ausführung von WebdriverIO mit dem WDIO-Testrunner definiert:

specs

Definieren Sie Test Dateien für die Testausführung. Sie können entweder ein Glob-Muster angeben, um mehrere Dateien gleichzeitig zu finden, oder ein Glob und eine Reihe von Pfaden in einem Array einschließen, um sie in einem einzelnen Worker-Prozessen auszuführen. All paths are seen as relative from the config file path.

Type: (String | String[])[]
Default: []

exclude

Schließen Sie Dateien von der Testausführung aus. Alle Pfade werden relativ zum Pfad der Konfigurationsdatei gesehen.

Type: String[]
Default: []

suites

Ein Objekt, das verschiedene Suiten beschreibt, die Sie dann mit der Option --suite auf der Befehlszeilenschnittstelle wdio angeben können.

Type: Object
Default: {}

capabilities

Ähnlich wie im oberen Abschnitt beschriebene capabilities Option, außer das mit dieser Option, entweder ein Multiremote Objekt oder mehrere Test Sessions in einem Array zur parallelen Ausführung angegeben werden können.

Sie können die gleichen anbieter- und browserspezifischen Capabilities wie obenanwenden.

Type: Object|Object[]
Default: [{ maxInstances: 5, browserName: 'firefox' }]

maxInstances

Maximale Anzahl parallel laufender Worker insgesamt.

Hinweis: kann eine Zahl sein, die bis 100 oder weiter geht, wenn die Tests auf einigen externen Cloud Anbietern durchgeführt werden. Dort werden die Tests nicht auf einer einzelnen Maschine, sondern auf mehreren VMs getestet. Wenn die Tests auf einem lokalen Entwicklungscomputer ausgeführt werden sollen, verwenden Sie eine sinnvollere Zahl, z. B. 3, 4oder 5. Im Wesentlichen ist dies die Anzahl der Browser, die gleichzeitig gestartet werden und Ihre Tests gleichzeitig ausführen, also hängt es davon ab, wie viel RAM auf Ihrem Computer vorhanden ist und wie viele andere Apps auf Ihrem Computer ausgeführt werden.

Type: Number
Default: 100

maxInstancesPerCapability

Maximale Gesamtzahl parallel laufender Worker pro Capability.

Type: Number
Default: 100

injectGlobals

browser, $ und $$) in die globale Umgebung eingefügt. Wenn Sie die Option allerdings auf false setzen, sollten Sie diese aus dem @wdio/globals Paket importieren, z.B.:

import { browser, $, $$, expect } from '@wdio/globals'

Hinweis: WebdriverIO ist nicht für das Setzen von Test-Framework-spezifischen Globalen Variablen verantwortlich.

Type: Boolean
Default: true

bail

Wenn Sie möchten, dass Ihr Testlauf nach einer bestimmten Anzahl von Testfehlern beendet wird, verwenden Sie bail. (Der Standardwert ist 0, wodurch alle Tests ausgeführt werden, egal was passiert.) Hinweis: Bitte beachten Sie, dass bei Verwendung eines Test-Runners eines Drittanbieters (z. B. Mocha) möglicherweise eine zusätzliche Konfiguration erforderlich ist.

Type: Number
Default: 0 (don't bail; run all tests)

specFileRetries

Die Anzahl der Wiederholungen einer gesamten Testdatei, wenn sie als Ganzes fehlschlägt.

Type: Number
Default: 0

specFileRetriesDelay

Verzögerung in Sekunden zwischen den Wiederholungsversuchen der Testdatei.

Type: Number
Default: 0

specFileRetriesDeferred

Whether or not retried spec files should be retried immediately or deferred to the end of the queue.

Type: Boolean
Default: true

groupLogsByTestSpec

Choose the log output view.

If set to false logs from different test files will be printed in real-time. Please note that this may result in the mixing of log outputs from different files when running in parallel.

If set to true log outputs will be grouped by Test Spec and printed only when the Test Spec is completed.

By default, it is set to false so logs are printed in real-time.

Type: Boolean
Default: false

services

WebdriverIO Services übernehmen eine bestimmte Aufgabe, um die Sie sich nicht kümmern möchten. Sie erweitern Ihren Testaufbau nahezu ohne Aufwand.

Type: String[]|Object[]
Default: []

framework

Definiert das vom WDIO-Testrunner zu verwendende Testframework.

Type: String
Default: mocha
Options: mocha | jasmine | cucumber

mochaOpts, jasmineOpts and cucumberOpts

Spezifische Framework-bezogene Optionen. Informationen zu den verfügbaren Optionen finden Sie in der Dokumentation zum Framework-Adapter. Lesen Sie mehr dazu in Frameworks.

Type: Object
Default: { timeout: 10000 }

cucumberFeaturesWithLineNumbers

Liste der Cucumber Features mit Zeilennummern (funktioniert nur, wenn Cucumber verwendet wird).

Type: String[] Default: []

reporters

Liste der zu verwendenden Reporter. Ein Reporter kann entweder ein String sein oder ein Array von ['reporterName', { /* reporter options */}] bei dem der erste Teil des Arrays der Reporter Name und der zweite Teil die Reporter Optionen sind.

Type: String[]|Object[]
Default: []

Beispiel:

reporters: [
'dot',
'spec'
['junit', {
outputDir: `${__dirname}/reports`,
otherOption: 'foobar'
}]
]

reporterSyncInterval

Legt fest, in welchem Intervall der Reporter prüfen soll, ob er synchronisiert ist, wenn er seine Logs asynchron verarbeitet werden (z. B.

Type: Number
Default: 100 (ms)

reporterSyncTimeout

Legt die maximale Zeit fest, die Reporter haben, um alle ihre Daten zu verarbeiten.

Type: Number
Default: 5000 (ms)

execArgv

Beim Starten von untergeordneten Worker-Prozesse anzugebende Argumente.

Type: String[]
Default: null

filesToWatch

Eine Reihe von Glob-unterstützenden Pfadpatterns, die dem Testrunner mitteilen, dass er zusätzlich diese Dateien auf Änderungen beobachten soll, z. B. Anwendungsdateien, im Falle der Parameter --watch wurde gesetzt. Standardmäßig überwacht der Testrunner bereits alle Testdateien.

Type: String[]
Default: []

autoCompileOpts

Compileroptionen bei Verwendung von WebdriverIO mit TypeScript oder Babel.

autoCompileOpts.autoCompile

Wenn auf true gesetzt, versucht der WDIO-Testrunner automatisch, die Testdateien zu transpilieren.

Type: Object Default: { transpileOnly: true }

autoCompileOpts.tsNodeOpts

Konfigurieren Sie, wie ts-node die Dateien transpilieren soll.

Type: Object Default: { transpileOnly: true }

autoCompileOpts.babelOpts

Konfigurieren Sie, wie @babel/register die Dateien transpilieren soll.

Type: Object Default: {}

Hooks

Mit dem WDIO-Testrunner können Sie Hooks festlegen, die zu bestimmten Zeiten des Test-Zyklus ausgelöst werden. Dies ermöglicht benutzerdefinierte Aktionen (z. B. Screenshot erstellen, wenn ein Test fehlschlägt).

Jeder Hook hat als Parameter spezifische Informationen über den Situation (z. B. Informationen über die Testsuite oder den Test). Lesen Sie mehr über alle Hook-Eigenschaften in unserer Beispielkonfiguration.

Hinweis: Einige Hooks (onPrepare, onWorkerStart, onWorkerEnd und onComplete) werden in einem anderen Prozess ausgeführt und können daher keine globalen Daten mit den anderen Hooks teilen, die im Workerprozess leben.

onPrepare

Wird einmal ausgeführt, bevor alle Worker gestartet werden.

Parameter:

  • config (object): WebdriverIO-Konfigurationsobjekt
  • param (object[]): Liste der Capabilities

onWorkerStart

Wird ausgeführt, bevor ein Worker-Prozess gestartet wird, und kann verwendet werden, um einen bestimmten Service für diesen Worker zu initialisieren und Laufzeitumgebungen asynchron zu ändern.

Parameter:

  • cid (string): Capability-ID (z. B. 0-0)
  • caps (Objekt): Enthält Capabilities für Sitzungen, die im Worker Prozess erstellt werden
  • specs (string[]): Tests, die im Workerprozess ausgeführt werden sollen
  • args (object): Objekt, das mit der Hauptkonfiguration zusammengeführt wird, sobald der Worker initialisiert ist
  • execArgv (string[]): Liste von String-Argumenten, die an den Arbeitsprozess übergeben werden

onWorkerEnd

Wird unmittelbar nach dem Beenden eines Worker-Prozesses ausgeführt.

Parameter:

  • cid (string): Capability-ID (z. B. 0-0)
  • exitCode (Zahl): 0 – Erfolg, 1 – Fehler
  • specs (string[]): Tests, die im Workerprozess ausgeführt werden sollen
  • retries (number): number of spec level retries used as defined in "Add retries on a per-specfile basis"

beforeSession

Wird unmittelbar vor der Initialisierung der Webdriver-Sitzung und des Testframeworks ausgeführt. Es ermöglicht Ihnen, Konfigurationen je nach Capability oder Test zu manipulieren.

Parameter:

  • config (object): WebdriverIO-Konfigurationsobjekt
  • caps (Objekt): Enthält die Capability für die Sitzung benutzt wird
  • specs (string[]): Tests, die im Workerprozess ausgeführt werden sollen

before

Wird ausgeführt, bevor die Testausführung beginnt. An dieser Stelle können Sie auf alle globalen Variablen wie browserzugreifen. Es ist der perfekte Ort, um benutzerdefinierte Befehle zu definieren.

Parameter:

  • caps (Objekt): Enthält die Capability, die für die Sitzung benutzt wird
  • specs (string[]): Tests, die im Workerprozess ausgeführt werden sollen
  • browser (Objekt): Instanz der erstellten Browser-/Gerätesitzung

beforeSuite

Hook that gets executed before the suite starts (in Mocha/Jasmine only)

Parameter:

  • suite (Objekt): Suite-Details

beforeHook

Hook, die ausgeführt wird, bevor eine Hook innerhalb der Suite beginnt (z. B. läuft vor dem Aufruf von beforeEach in Mocha)

Parameter:

  • test (Objekt): Testdetails
  • context (Objekt): Testkontext (repräsentiert World-Objekt in Cucumber)

afterHook

Hook, die ausgeführt wird, nachdem ein Hook innerhalb der Suite endet (z. B.: läuft nach dem Aufruf von afterEach in Mocha)

Parameter:

  • test (Objekt): Testdetails
  • context (Objekt): Testkontext (repräsentiert World-Objekt in Cucumber)
  • result (Objekt): Hook-Ergebnis (enthält error, result, duration, passed, retries Eigenschaften)

beforeTest

Funktion, die vor einem Test ausgeführt werden soll (nur in Mocha/Jasmine).

Parameter:

  • test (Objekt): Testdetails
  • context (Objekt): Scope-Objekt, mit dem der Test ausgeführt wurde

beforeCommand

Wird ausgeführt, bevor ein WebdriverIO-Befehl ausgeführt wird.

Parameter:

  • commandName (string): Befehlsname
  • args (*): Argumente, die der Befehl erhalten würde

afterCommand

Wird ausgeführt, nachdem ein WebdriverIO-Befehl ausgeführt wurde.

Parameter:

  • commandName (string): Befehlsname
  • args (*): Argumente, die der Befehl erhalten würde
  • result (Zahl): 0 - wenn Befehl erfolgreich wurde, 1 - beim Fehler
  • error (Fehler): Fehlerobjekt, falls vorhanden

afterTest

Funktion, die nach dem Ende eines Tests (in Mocha/Jasmine) ausgeführt werden soll.

Parameter:

  • test (Objekt): Testdetails
  • context (Objekt): Scope-Objekt, mit dem der Test ausgeführt wurde
  • result.error (Error): Fehlerobjekt falls der Test fehlschlägt, ansonsten undefiniert
  • result.result (Any): Ergebniss der Testfunktion
  • result.duration (Ziffer): Testdauer
  • result.passed (Boolean): wahr, wenn der Test bestanden wurde, andernfalls falsch
  • result.retries (Object): information about single test related retries as defined for Mocha and Jasmine as well as Cucumber, e.g. { attempts: 0, limit: 0 }, see
  • result (Objekt): Hook-Ergebnis (enthält error, result, duration, passed, retries Eigenschaften)

afterSuite

Hook that gets executed after the suite has ended (in Mocha/Jasmine only)

Parameter:

  • suite (Objekt): Suite-Details

after

Wird ausgeführt, nachdem alle Tests abgeschlossen sind. Sie haben weiterhin Zugriff auf alle globalen Variablen aus dem Test.

Parameter:

  • exitCode (Zahl): 0 – Erfolg, 1 – Fehler
  • caps (Objekt): Enthält die Capability, die für die Sitzung benutzt wurde
  • specs (string[]): Tests, die im Workerprozess ausgeführt wurden

afterSession

Wird direkt nach dem Beenden der Webdriver-Sitzung ausgeführt.

Parameter:

  • config (object): WebdriverIO-Konfigurationsobjekt
  • caps (Objekt): Enthält die Capability, die für die Sitzung benutzt wurde
  • specs (string[]): Tests, die im Workerprozess ausgeführt wurden

onComplete

Wird ausgeführt, nachdem alle Worker heruntergefahren wurden und der Testrunner Prozess dabei ist geschlossen zu werden. Ein Fehler, der in den onComplete-Hook geworfen wird, führt dazu, dass der Testlauf fehlschlägt.

Parameter:

  • exitCode (Zahl): 0 – Erfolg, 1 – Fehler
  • config (object): WebdriverIO-Konfigurationsobjekt
  • caps (Objekt): Enthält Capabilities für Sitzungen, die im Worker Prozess genutzt wurden
  • Ergebnis (Objekt): Ergebnisobjekt, das Testergebnisse enthält

onReload

Wird ausgeführt, wenn eine Session-Aktualisierung erfolgt.

Parameter:

  • oldSessionId (string): Sitzungs-ID der alten Sitzung
  • newSessionId (string): Sitzungs-ID der neuen Sitzung

beforeFeature

Läuft vor einem Cucumber-Feature.

Parameter:

afterFeature

Läuft nach einem Cucumber-Feature.

Parameter:

beforeScenario

Läuft vor einem Cucumber-Szenario.

Parameter:

  • world (ITestCaseHookParameter): Weltobjekt, das Informationen zu Pickle und Testschritt enthält
  • context (Objekt): Cucumber World-Objekt

afterScenario

Läuft nach einem Cucumber-Szenario.

Parameter:

  • world (ITestCaseHookParameter): Weltobjekt, das Informationen zu Pickle und Testschritt enthält
  • result (Objekt): Ergebnisobjekt, das das Szenarioergebnisse enthält
  • result.passed (boolean): wahr, wenn der Test bestanden wurde, andernfalls falsch
  • result.error (string): Fehler, wenn Szenario fehlgeschlagen ist
  • result.duration (ziffer): Testdauer
  • context (Objekt): Cucumber World-Objekt

beforeStep

Läuft vor einem Cucumber-Schritt.

Parameter:

  • step (Pickle.IPickleStep): Cucumber Objekt
  • scenario (IPickle): Cucumber-Szenario Objekt
  • context (Objekt): Cucumber World-Objekt

afterStep

Läuft nach einem Cucumber Schritt.

Parameter:

  • step (Pickle.IPickleStep): Cucumber Objekt
  • scenario (IPickle): Cucumber-Szenario Objekt
  • result (Objekt): Ergebnisobjekt, das das Szenarioergebnisse enthält
  • result.passed (boolean): wahr, wenn der Test bestanden wurde, andernfalls falsch
  • result.error (string): Fehler, wenn Szenario fehlgeschlagen ist
  • result.duration (ziffer): Testdauer
  • context (Objekt): Cucumber World-Objekt

beforeAssertion

Hook that gets executed before a WebdriverIO assertion happens.

Parameters:

  • params: assertion information
  • params.matcherName (string): name of the matcher (e.g. toHaveTitle)
  • params.expectedValue: value that is passed into the matcher
  • params.options: assertion options

afterAssertion

Hook that gets executed after a WebdriverIO assertion happened.

Parameters:

  • params: assertion information
  • params.matcherName (string): name of the matcher (e.g. toHaveTitle)
  • params.expectedValue: value that is passed into the matcher
  • params.options: assertion options
  • params.result: assertion results

Welcome! How can I help?

WebdriverIO AI Copilot