Konfiguracja
W zależności od rodzaju konfiguracji (np. korzystanie z surowych powiązań protokołu, WebdriverIO jako samodzielnego pakietu lub testrunner WDIO) dostępny jest różny zestaw opcji do kontrolowania środowiska.
Opcje WebDriver
Następujące opcje są zdefiniowane podczas korzystania z pakietu protokołu webdriver
:
protocol
Protokół używany do komunikacji z serwerem sterownika.
Typ: String
Domyślnie: http
hostname
Host twojego serwera sterownika.
Typ: String
Domyślnie: 0.0.0.0
port
Port, na którym znajduje się twój serwer sterownika.
Typ: Number
Domyślnie: undefined
path
Ścieżka do punktu końcowego serwera sterownika.
Typ: String
Domyślnie: /
queryParams
Parametry zapytania, które są przekazywane do serwera sterownika.
Typ: Object
Domyślnie: undefined
user
Nazwa użytkownika twojej usługi w chmurze (działa tylko dla kont Sauce Labs, Browserstack, TestingBot lub LambdaTest). Jeśli ustawiona, WebdriverIO automatycznie skonfiguruje opcje połączenia dla Ciebie. Jeśli nie korzystasz z dostawcy usług w chmurze, może to służyć do uwierzytelniania dowolnego innego backendu WebDriver.
Typ: String
Domyślnie: undefined
key
Twój klucz dostępu lub tajny klucz usługi w chmurze (działa tylko dla kont Sauce Labs, Browserstack, TestingBot lub LambdaTest). Jeśli ustawiony, WebdriverIO automatycznie skonfiguruje opcje połączenia dla Ciebie. Jeśli nie korzystasz z dostawcy usług w chmurze, może to służyć do uwierzytelniania dowolnego innego backendu WebDriver.
Typ: String
Domyślnie: undefined
capabilities
Definiuje funkcje, które chcesz uruchomić w swojej sesji WebDriver. Sprawdź WebDriver Protocol, aby uzyskać więcej szczegółów. Jeśli korzystasz ze starszego sterownika, który nie obsługuje protokołu WebDriver, będziesz musiał użyć funkcji JSONWireProtocol, aby pomyślnie uruchomić sesję.
Oprócz podstawowych funkcji WebDriver, możesz stosować opcje specyficzne dla przeglądarki i dostawcy, które umożliwiają głębszą konfigurację zdalnej przeglądarki lub urządzenia. Są one udokumentowane w odpowiednich dokumentacjach producentów, np.:
goog:chromeOptions
: dla Google Chromemoz:firefoxOptions
: dla Mozilla Firefoxms:edgeOptions
: dla Microsoft Edgesauce:options
: dla Sauce Labsbstack:options
: dla BrowserStackselenoid:options
: dla Selenoid
Dodatkowo, przydatnym narzędziem jest Automated Test Configurator od Sauce Labs, który pomaga stworzyć ten obiekt, klikając razem żądane funkcje.
Typ: Object
Domyślnie: null
Przykład:
{
browserName: 'chrome', // opcje: `chrome`, `edge`, `firefox`, `safari`
browserVersion: '27.0', // wersja przeglądarki
platformName: 'Windows 10' // platforma OS
}
Jeśli przeprowadzasz testy internetowe lub natywne na urządzeniach mobilnych, capabilities
różni się od protokołu WebDriver. Zobacz Dokumentację Appium, aby uzyskać więcej szczegółów.
logLevel
Poziom szczegółowości logowania.
Typ: String
Domyślnie: info
Opcje: trace
| debug
| info
| warn
| error
| silent
outputDir
Katalog do przechowywania wszystkich plików dziennika testrunner (w tym dzienników reportera i dzienników wdio
). Jeśli nie jest ustawiony, wszystkie logi są przekazywane do stdout
. Ponieważ większość reporterów jest stworzona do logowania do stdout
, zaleca się używanie tej opcji tylko dla określonych reporterów, dla których ma więcej sensu przekierowanie raportu do pliku (jak reporter junit
, na przykład).
Podczas pracy w trybie standalone, jedynym generowanym dziennikiem będzie dziennik wdio
.
Typ: String
Domyślnie: null
connectionRetryTimeout
Limit czasu dla żądania WebDriver do sterownika lub siatki.
Typ: Number
Domyślnie: 120000
connectionRetryCount
Maksymalna liczba ponownych prób żądania do serwera Selenium.
Typ: Number
Domyślnie: 3
agent
Pozwala użyć niestandardowego agenta http
/https
/http2
agent do wykonywania żądań.
Typ: Object
Domyślnie:
{
http: new http.Agent({ keepAlive: true }),
https: new https.Agent({ keepAlive: true })
}
headers
Określa niestandardowe nagłówki
do przekazania w każdym żądaniu WebDriver. Jeśli Twoja siatka Selenium wymaga uwierzytelnienia podstawowego, zalecamy przekazanie nagłówka Authorization
przez tę opcję, aby uwierzytelnić żądania WebDriver, np.:
import { Buffer } from 'buffer';
// Read the username and password from environment variables
const username = process.env.SELENIUM_GRID_USERNAME;
const password = process.env.SELENIUM_GRID_PASSWORD;
// Combine the username and password with a colon separator
const credentials = `${username}:${password}`;
// Encode the credentials using Base64
const encodedCredentials = Buffer.from(credentials).toString('base64');
export const config: WebdriverIO.Config = {
// ...
headers: {
Authorization: `Basic ${encodedCredentials}`
}
// ...
}
Typ: Object
Domyślnie: {}
transformRequest
Funkcja przechwytująca opcje żądania HTTP przed wykonaniem żądania WebDriver
Typ: (RequestOptions) => RequestOptions
Domyślnie: brak
transformResponse
Funkcja przechwytująca obiekty odpowiedzi HTTP po nadejściu odpowiedzi WebDriver. Funkcja otrzymuje oryginalny obiekt odpowiedzi jako pierwszy argument i odpowiednie RequestOptions
jako drugi argument.
Typ: (Response, RequestOptions) => Response
Domyślnie: brak
strictSSL
Czy nie wymaga, aby certyfikat SSL był ważny.
Może być ustawiony za pomocą zmiennych środowiskowych jako STRICT_SSL
lub strict_ssl
.
Typ: Boolean
Domyślnie: true
enableDirectConnect
Czy włączyć funkcję bezpośredniego połączenia Appium. Nie robi nic, jeśli odpowiedź nie zawierała odpowiednich kluczy, gdy flaga jest włączona.
Typ: Boolean
Domyślnie: true
cacheDir
Ścieżka do katalogu głównego pamięci podręcznej. Ten katalog jest używany do przechowywania wszystkich sterowników, które są pobierane podczas próby rozpoczęcia sesji.
Typ: String
Domyślnie: process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()
maskingPatterns
Dla bezpieczniejszego logowania, wyrażenia regularne ustawione za pomocą maskingPatterns
mogą zaciemniać wrażliwe informacje z dziennika.
- Format ciągu to wyrażenie regularne z flagami lub bez (np.
/.../i
) i oddzielony przecinkami dla wielu wyrażeń regularnych. - Więcej szczegółów na temat wzorców maskowania można znaleźć w sekcji Wzorce maskowania w README modułu WDIO Logger.
Typ: String
Domyślnie: undefined
Przykład:
{
maskingPatterns: '/--key=([^ ]*)/i,/RESULT (.*)/'
}
WebdriverIO
Następujące opcje (w tym te wymienione powyżej) mogą być używane z WebdriverIO w trybie standalone:
automationProtocol
Zdefiniuj protokół, którego chcesz używać do automatyzacji przeglądarki. Obecnie obsługiwany jest tylko webdriver
, ponieważ jest to główna technologia automatyzacji przeglądarki używana przez WebdriverIO.
Jeśli chcesz zautomatyzować przeglądarkę za pomocą innej technologii automatyzacji, upewnij się, że ta właściwość jest ustawiona na ścieżkę, która rozwiązuje się do modułu zgodnego z następującym interfejsem:
import type { Capabilities } from '@wdio/types';
import type { Client, AttachOptions } from 'webdriver';
export default class YourAutomationLibrary {
/**
* Start a automation session and return a WebdriverIO [monad](https://github.com/webdriverio/webdriverio/blob/940cd30939864bdbdacb2e94ee6e8ada9b1cc74c/packages/wdio-utils/src/monad.ts)
* with respective automation commands. See the [webdriver](https://www.npmjs.com/package/webdriver) package
* as a reference implementation
*
* @param {Capabilities.RemoteConfig} options WebdriverIO options
* @param {Function} hook that allows to modify the client before it gets released from the function
* @param {PropertyDescriptorMap} userPrototype allows user to add custom protocol commands
* @param {Function} customCommandWrapper allows to modify the command execution
* @returns a WebdriverIO compatible client instance
*/
static newSession(
options: Capabilities.RemoteConfig,
modifier?: (...args: any[]) => any,
userPrototype?: PropertyDescriptorMap,
customCommandWrapper?: (...args: any[]) => any
): Promise<Client>;
/**
* allows user to attach to existing sessions
* @optional
*/
static attachToSession(
options?: AttachOptions,
modifier?: (...args: any[]) => any, userPrototype?: {},
commandWrapper?: (...args: any[]) => any
): Client;
/**
* Changes The instance session id and browser capabilities for the new session
* directly into the passed in browser object
*
* @optional
* @param {object} instance the object we get from a new browser session.
* @returns {string} the new session id of the browser
*/
static reloadSession(
instance: Client,
newCapabilities?: WebdriverIO.Capabilitie
): Promise<string>;
}
Typ: String
Domyślnie: webdriver
baseUrl
Skraca wywołania komendy url
poprzez ustawienie podstawowego adresu URL.
- Jeśli Twój parametr
url
zaczyna się od/
, tobaseUrl
jest dodawany na początku (z wyjątkiem ścieżkibaseUrl
, jeśli taką ma). - Jeśli Twój parametr
url
zaczyna się bez schematu lub/
(jaksome/path
), to pełnybaseUrl
jest dodawany bezpośrednio na początku.
Typ: String
Domyślnie: null
waitforTimeout
Domyślny limit czasu dla wszystkich komend waitFor*
. (Zauważ małą literę f
w nazwie opcji.) Ten limit czasu tylko wpływa na komendy zaczynające się od waitFor*
i ich domyślny czas oczekiwania.
Aby zwiększyć limit czasu dla testu, sprawdź dokumentację frameworka.
Typ: Number
Domyślnie: 5000
waitforInterval
Domyślny interwał dla wszystkich komend waitFor*
, aby sprawdzić, czy oczekiwany stan (np. widoczność) został zmieniony.
Typ: Number
Domyślnie: 100
region
Jeśli korzystasz z Sauce Labs, możesz wybrać uruchamianie testów między różnymi centrami danych: US lub EU.
Aby zmienić region na EU, dodaj region: 'eu'
do swojej konfiguracji.
Uwaga: To ma wpływ tylko wtedy, gdy podasz opcje user
i key
, które są połączone z Twoim kontem Sauce Labs.
Typ: String
Domyślnie: us
(tylko dla vm i/lub em/symulatorów)
Opcje Testrunner
Następujące opcje (w tym te wymienione powyżej) są zdefiniowane tylko do uruchamiania WebdriverIO z testrunnerem WDIO:
specs
Definiuje specyfikacje do wykonania testu. Możesz określić wzorzec glob, aby dopasować wiele plików jednocześnie, lub opakować glob lub zestaw ścieżek w tablicę, aby uruchomić je w ramach jednego procesu roboczego. Wszystkie ścieżki są traktowane jako względne w stosunku do ścieżki pliku konfiguracyjnego.
Typ: (String | String[])[]
Domyślnie: []
exclude
Wyklucza specyfikacje z wykonania testu. Wszystkie ścieżki są traktowane jako względne w stosunku do ścieżki pliku konfiguracyjnego.
Typ: String[]
Domyślnie: []
suites
Obiekt opisujący różne zestawy, które można następnie określić za pomocą opcji --suite
w interfejsie wiersza poleceń wdio
.
Typ: Object
Domyślnie: {}
capabilities
To samo co sekcja capabilities
opisana powyżej, z możliwością określenia albo obiektu multiremote
, albo wielu sesji WebDrivera w tablicy do równoległego wykonania.
Możesz zastosować te same specyficzne dla dostawcy i przeglądarki funkcje, jak zdefiniowano powyżej.
Typ: Object
|Object[]
Domyślnie: [{ 'wdio:maxInstances': 5, browserName: 'firefox' }]
maxInstances
Maksymalna liczba wszystkich równolegle działających pracowników.
Uwaga: może to być liczba tak wysoka jak 100
, gdy testy są wykonywane na zewnętrznych dostawcach, takich jak maszyny Sauce Labs. Tam testy nie są testowane na jednej maszynie, ale raczej na wielu maszynach wirtualnych. Jeśli testy mają być uruchamiane na lokalnej maszynie programistycznej, użyj bardziej rozsądnej liczby, takiej jak 3
, 4
lub 5
. Zasadniczo jest to liczba przeglądarek, które będą jednocześnie uruchamiane i uruchamiające Twoje testy w tym samym czasie, więc zależy to od ilości pamięci RAM na Twojej maszynie i liczby innych aplikacji działających na Twojej maszynie.
Możesz również zastosować maxInstances
w ramach swoich obiektów capability, używając funkcji wdio:maxInstances
. Ograniczy to liczbę równoległych sesji dla tej konkretnej funkcji.
Typ: Number
Domyślnie: 100
maxInstancesPerCapability
Maksymalna liczba wszystkich równolegle działających pracowników na capability.
Typ: Number
Domyślnie: 100
injectGlobals
Wstawia globalne elementy WebdriverIO (np. browser
, $
i $$
) do globalnego środowiska.
Jeśli ustawisz na false
, powinieneś importować z @wdio/globals
, np.:
import { browser, $, $$, expect } from '@wdio/globals'
Uwaga: WebdriverIO nie obsługuje wstrzykiwania globalnych elementów specyficznych dla frameworka testowego.
Typ: Boolean
Domyślnie: true
bail
Jeśli chcesz, aby Twój test zatrzymał się po określonej liczbie niepowodzeń, użyj bail
.
(Domyślnie jest 0
, co oznacza uruchamianie wszystkich testów bez względu na wynik.) Uwaga: Test w tym kontekście to wszystkie testy w ramach pojedynczego pliku specyfikacji (gdy używasz Mocha lub Jasmine) lub wszystkie kroki w pliku funkcji (gdy używasz Cucumber). Jeśli chcesz kontrolować zachowanie bail w ramach testów pojedynczego pliku testowego, sprawdź dostępne opcje framework.
Typ: Number
Domyślnie: 0
(nie bail; uruchom wszystkie testy)
specFileRetries
Liczba ponownych prób całego pliku specyfikacji, gdy nie powiedzie się jako całość.
Typ: Number
Domyślnie: 0
specFileRetriesDelay
Opóźnienie w sekundach między próbami ponownego uruchomienia pliku specyfikacji.
Typ: Number
Domyślnie: 0
specFileRetriesDeferred
Czy ponowne próby plików specyfikacji powinny być powtarzane natychmiast, czy odroczone na koniec kolejki.
Typ: Boolean
Domyślnie: true
groupLogsByTestSpec
Wybierz widok wyjścia dziennika.
Jeśli ustawione na false
, dzienniki z różnych plików testowych będą drukowane w czasie rzeczywistym. Należy zauważyć, że może to spowodować mieszanie się wyjść dzienników z różnych plików podczas równoległego uruchamiania.
Jeśli ustawione na true
, wyjścia dzienników będą grupowane według specyfikacji testowej i drukowane tylko po zakończeniu specyfikacji testowej.
Domyślnie jest ustawione na false
, więc dzienniki są drukowane w czasie rzeczywistym.
Typ: Boolean
Domyślnie: false
autoAssertOnTestEnd
Kontroluje, czy WebdriverIO automatycznie sprawdza wszystkie asercje miękkie na końcu każdego testu. Gdy ustawione na true
, wszystkie zgromadzone asercje miękkie zostaną automatycznie sprawdzone i spowodują niepowodzenie testu, jeśli którakolwiek z asercji nie powiedzie się. Gdy ustawione na false
, musisz ręcznie wywołać metodę asercji, aby sprawdzić asercje miękkie.
Typ: Boolean
Domyślnie: true
services
Usługi przejmują określone zadanie, którym nie chcesz się zajmować. Rozszerzają one konfigurację testu prawie bez wysiłku.
Typ: String[]|Object[]
Domyślnie: []
framework
Definiuje framework testowy, który ma być używany przez testrunner WDIO.
Typ: String
Domyślnie: mocha
Opcje: mocha
| jasmine
mochaOpts, jasmineOpts i cucumberOpts
Opcje specyficzne dla frameworka. Zobacz dokumentację adaptera frameworka, aby dowiedzieć się, jakie opcje są dostępne. Więcej informacji na ten temat w Frameworks.
Typ: Object
Domyślnie: { timeout: 10000 }
cucumberFeaturesWithLineNumbers
Lista funkcji cucumber z numerami linii (podczas korzystania z frameworka cucumber).
Typ: String[]
Domyślnie: []
reporters
Lista reporterów do użycia. Reporter może być albo ciągiem znaków, albo tablicą
['reporterName', { /* reporter options */}]
, gdzie pierwszy element jest ciągiem z nazwą reportera, a drugi element jest obiektem z opcjami reportera.
Typ: String[]|Object[]
Domyślnie: []
Przykład:
reporters: [
'dot',
'spec'
['junit', {
outputDir: `${__dirname}/reports`,
otherOption: 'foobar'
}]
]
reporterSyncInterval
Określa w jakim interwale reporter powinien sprawdzać, czy są zsynchronizowane, jeśli raportują swoje dzienniki asynchronicznie (np. jeśli dzienniki są przesyłane strumieniowo do dostawcy zewnętrznego).
Typ: Number
Domyślnie: 100
(ms)
reporterSyncTimeout
Określa maksymalny czas, jaki reporterzy mają na zakończenie przesyłania wszystkich swoich dzienników, zanim testrunner zgłosi błąd.
Typ: Number
Domyślnie: 5000
(ms)
execArgv
Argumenty Node do określenia podczas uruchamiania procesów potomnych.
Typ: String[]
Domyślnie: null
filesToWatch
Lista wzorców ciągów znaków obsługujących glob, które informują testrunner, aby dodatkowo obserwował inne pliki, np. pliki aplikacji, podczas uruchamiania go z flagą --watch
. Domyślnie testrunner już obserwuje wszystkie pliki specyfikacji.
Typ: String[]
Domyślnie: []
updateSnapshots
Ustaw na true, jeśli chcesz zaktualizować swoje snapshoty. Idealnie używane jako część parametru CLI, np. wdio run wdio.conf.js --s
.
Typ: 'new' | 'all' | 'none'
Domyślnie: none
jeśli nie podano i testy są uruchamiane w CI, new
jeśli nie podano, w przeciwnym razie to, co zostało podane
resolveSnapshotPath
Nadpisuje domyślną ścieżkę snapshota. Na przykład, aby przechowywać snapshoty obok plików testowych.
export const config: WebdriverIO.Config = {
resolveSnapshotPath: (testPath, snapExtension) => testPath + snapExtension,
}
Typ: (testPath: string, snapExtension: string) => string
Domyślnie: przechowuje pliki snapshota w katalogu __snapshots__
obok pliku testowego
tsConfigPath
WDIO używa tsx
do kompilacji plików TypeScript. Twój TSConfig jest automatycznie wykrywany z bieżącego katalogu roboczego, ale możesz określić niestandardową ścieżkę tutaj lub ustawiając zmienną środowiskową TSX_TSCONFIG_PATH.
Zobacz dokumentację tsx
: https://tsx.is/dev-api/node-cli#custom-tsconfig-json-path
Typ: String
Domyślnie: null
Hooks
Testrunner WDIO pozwala ustawić hooki, które są wyzwalane w określonych momentach cyklu życia testu. Pozwala to na niestandardowe akcje (np. zrobienie zrzutu ekranu, jeśli test nie powiedzie się).
Każdy hook ma jako parametr określone informacje o cyklu życia (np. informacje o zestawie testów lub teście). Przeczytaj więcej o wszystkich właściwościach hooka w naszym przykładowym pliku konfiguracyjnym.
Uwaga: Niektóre hooki (onPrepare
, onWorkerStart
, onWorkerEnd
i onComplete
) są wykonywane w innym procesie i dlatego nie mogą dzielić żadnych globalnych danych z innymi hookami, które żyją w procesie roboczym.
onPrepare
Wykonywane raz przed uruchomieniem wszystkich pracowników.
Parametry:
config
(object
): obiekt konfiguracyjny WebdriverIOparam
(object[]
): lista szczegółów capabilities
onWorkerStart
Wykonywane przed uruchomieniem procesu roboczego i może być używane do inicjalizacji określonej usługi dla tego pracownika, a także do modyfikacji środowisk wykonawczych w sposób asynchroniczny.
Parametry:
cid
(string
): id capabilities (np. 0-0)caps
(object
): zawierający capabilities dla sesji, która zostanie uruchomiona w procesie roboczymspecs
(string[]
): specyfikacje do uruchomienia w procesie roboczymargs
(object
): obiekt, który zostanie połączony z główną konfiguracją po zainicjowaniu pracownikaexecArgv
(string[]
): lista argumentów ciągu znaków przekazanych do procesu roboczego
onWorkerEnd
Wykonywane zaraz po zakończeniu procesu roboczego.
Parametry:
cid
(string
): id capabilities (np. 0-0)exitCode
(number
): 0 - sukces, 1 - niepowodzeniespecs
(string[]
): specyfikacje uruchomione w procesie roboczymretries
(number
): liczba ponownych prób na poziomie specyfikacji użytych zgodnie z definicją w "Dodaj ponowne próby na podstawie specyfikacji pliku"
beforeSession
Wykonywane tuż przed inicjalizacją sesji webdriver i frameworka testowego. Pozwala manipulować konfiguracjami w zależności od funkcji lub specyfikacji.
Parametry:
config
(object
): obiekt konfiguracyjny WebdriverIOcaps
(object
): zawierający capabilities dla sesji, która zostanie uruchomiona w procesie roboczymspecs
(string[]
): specyfikacje do uruchomienia w procesie roboczym
before
Wykonywane przed rozpoczęciem wykonania testu. W tym momencie masz dostęp do wszystkich zmiennych globalnych, takich jak browser
. Jest to idealne miejsce do definiowania niestandardowych poleceń.
Parametry:
caps
(object
): zawierający capabilities dla sesji, która zostanie uruchomiona w procesie roboczymspecs
(string[]
): specyfikacje do uruchomienia w procesie roboczymbrowser
(object
): instancja utworzonej sesji przeglądarki/urządzenia
beforeSuite
Hook, który jest wykonywany przed rozpoczęciem zestawu (tylko w Mocha/Jasmine)
Parametry:
suite
(object
): szczegóły zestawu
beforeHook
Hook, który jest wykonywany przed hookiem w ramach zestawu (np. uruchamia się przed wywołaniem beforeEach w Mocha)
Parametry:
test
(object
): szczegóły testucontext
(object
): kontekst testu (reprezentuje obiekt World w Cucumber)
afterHook
Hook, który jest wykonywany po hooku w ramach zestawu (np. uruchamia się po wywołaniu afterEach w Mocha)
Parametry:
test
(object
): szczegóły testucontext
(object
): kontekst testu (reprezentuje obiekt World w Cucumber)result
(object
): wynik hooka (zawiera właściwościerror
,result
,duration
,passed
,retries
)
beforeTest
Funkcja wykonywana przed testem (tylko w Mocha/Jasmine).
Parametry:
test
(object
): szczegóły testucontext
(object
): obiekt zakresu, z którym test został wykonany
beforeCommand
Uruchamiane przed wykonaniem polecenia WebdriverIO.
Parametry:
commandName
(string
): nazwa poleceniaargs
(*
): argumenty, które polecenie otrzymałoby
afterCommand
Uruchamiane po wykonaniu polecenia WebdriverIO.
Parametry:
commandName
(string
): nazwa poleceniaargs
(*
): argumenty, które polecenie otrzymałobyresult
(number
): 0 - sukces polecenia, 1 - błąd poleceniaerror
(Error
): obiekt błędu, jeśli wystąpił
afterTest
Funkcja wykonywana po zakończeniu testu (w Mocha/Jasmine).
Parametry:
test
(object
): szczegóły testucontext
(object
): obiekt zakresu, z którym test został wykonanyresult.error
(Error
): obiekt błędu w przypadku niepowodzenia testu, w przeciwnym razieundefined
result.result
(Any
): obiekt zwracany przez funkcję testowąresult.duration
(Number
): czas trwania testuresult.passed
(Boolean
): true, jeśli test został zaliczony, w przeciwnym razie falseresult.retries
(Object
): informacje o pojedynczych ponownych próbach testu, jak zdefiniowano dla Mocha i Jasmine oraz Cucumber, np.{ attempts: 0, limit: 0 }
, zobaczresult
(object
): wynik hooka (zawiera właściwościerror
,result
,duration
,passed
,retries
)
afterSuite
Hook, który jest wykonywany po zakończeniu zestawu (tylko w Mocha/Jasmine)
Parametry:
suite
(object
): szczegóły zestawu
after
Wykonywane po zakończeniu wszystkich testów. Nadal masz dostęp do wszystkich zmiennych globalnych z testu.
Parametry:
result
(number
): 0 - test zaliczony, 1 - test niezaliczonycaps
(object
): zawierający capabilities dla sesji, która została uruchomiona w procesie roboczymspecs
(string[]
): specyfikacje uruchomione w procesie roboczym
afterSession
Wykonywane zaraz po zakończeniu sesji webdriver.
Parametry:
config
(object
): obiekt konfiguracyjny WebdriverIOcaps
(object
): zawierający capabilities dla sesji, która została uruchomiona w procesie roboczymspecs
(string[]
): specyfikacje uruchomione w procesie roboczym
onComplete
Wykonywane po zamknięciu wszystkich pracowników i przed zakończeniem procesu. Błąd zgłoszony w hooku onComplete spowoduje niepowodzenie uruchomienia testu.
Parametry:
exitCode
(number
): 0 - sukces, 1 - niepowodzenieconfig
(object
): obiekt konfiguracyjny WebdriverIOcaps
(object
): zawierający capabilities dla sesji, która została uruchomiona w procesie roboczymresult
(object
): obiekt wyników zawierający wyniki testów
onReload
Wykonywane, gdy następuje odświeżenie.
Parametry:
oldSessionId
(string
): ID sesji starej sesjinewSessionId
(string
): ID sesji nowej sesji
beforeFeature
Uruchamiane przed funkcją Cucumber.
Parametry:
uri
(string
): ścieżka do pliku funkcjifeature
(GherkinDocument.IFeature
): obiekt funkcji Cucumber
afterFeature
Uruchamiane po funkcji Cucumber.
Parametry:
uri
(string
): ścieżka do pliku funkcjifeature
(GherkinDocument.IFeature
): obiekt funkcji Cucumber
beforeScenario
Uruchamiane przed scenariuszem Cucumber.
Parametry:
world
(ITestCaseHookParameter
): obiekt świata zawierający informacje o pickle i kroku testowymcontext
(object
): obiekt World Cucumber
afterScenario
Uruchamiane po scenariuszu Cucumber.
Parametry:
world
(ITestCaseHookParameter
): obiekt świata zawierający informacje o pickle i kroku testowymresult
(object
): obiekt wyników zawierający wyniki scenariuszaresult.passed
(boolean
): true, jeśli scenariusz został zaliczonyresult.error
(string
): stos błędu, jeśli scenariusz nie powiódł sięresult.duration
(number
): czas trwania scenariusza w milisekundachcontext
(object
): obiekt World Cucumber
beforeStep
Uruchamiane przed krokiem Cucumber.
Parametry:
step
(Pickle.IPickleStep
): obiekt kroku Cucumberscenario
(IPickle
): obiekt scenariusza Cucumbercontext
(object
): obiekt World Cucumber
afterStep
Uruchamiane po kroku Cucumber.
Parametry:
step
(Pickle.IPickleStep
): obiekt kroku Cucumberscenario
(IPickle
): obiekt scenariusza Cucumberresult
: (object
): obiekt wyników zawierający wyniki krokuresult.passed
(boolean
): true, jeśli scenariusz został zaliczonyresult.error
(string
): stos błędu, jeśli scenariusz nie powiódł sięresult.duration
(number
): czas trwania scenariusza w milisekundachcontext
(object
): obiekt World Cucumber
beforeAssertion
Hook, który jest wykonywany przed asercją WebdriverIO.
Parametry:
params
: informacje o asercjiparams.matcherName
(string
): nazwa matchera (np.toHaveTitle
)params.expectedValue
: wartość, która jest przekazywana do matcheraparams.options
: opcje asercji
afterAssertion
Hook, który jest wykonywany po asercji WebdriverIO.
Parametry:
params
: informacje o asercjiparams.matcherName
(string
): nazwa matchera (np.toHaveTitle
)params.expectedValue
: wartość, która jest przekazywana do matcheraparams.options
: opcje asercjiparams.result
: wyniki asercji