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.:
goog:chromeOptions
: for Google Chromemoz:firefoxOptions
: for Mozilla Firefoxms:edgeOptions
: for Microsoft Edgesauce:options
: for Sauce Labsbstack:options
: for BrowserStackselenoid:options
: for Selenoid
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.
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_ssl
gesetzt 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 devtools
automatisieren 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, wirdbaseUrl
vorangestellt (mit Ausnahme des PfadsbaseUrl
, falls vorhanden). - Wenn Ihr Parameter
url
ohne Schema oder/
(wiesome/path
) beginnt, wird die vollständigebaseUrl
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
, 4
oder 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
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-Konfigurationsobjektparam
(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 werdenspecs
(string[]
): Tests, die im Workerprozess ausgeführt werden sollenargs
(object
): Objekt, das mit der Hauptkonfiguration zusammengeführt wird, sobald der Worker initialisiert istexecArgv
(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 – Fehlerspecs
(string[]
): Tests, die im Workerprozess ausgeführt werden sollenretries
(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-Konfigurationsobjektcaps
(Objekt
): Enthält die Capability für die Sitzung benutzt wirdspecs
(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 browser
zugreifen. Es ist der perfekte Ort, um benutzerdefinierte Befehle zu definieren.
Parameter:
caps
(Objekt
): Enthält die Capability, die für die Sitzung benutzt wirdspecs
(string[]
): Tests, die im Workerprozess ausgeführt werden sollenbrowser
(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
): Testdetailscontext
(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
): Testdetailscontext
(Objekt
): Testkontext (repräsentiert World-Objekt in Cucumber)result
(Objekt
): Hook-Ergebnis (enthälterror
,result
,duration
,passed
,retries
Eigenschaften)
beforeTest
Funktion, die vor einem Test ausgeführt werden soll (nur in Mocha/Jasmine).
Parameter:
test
(Objekt
): Testdetailscontext
(Objekt
): Scope-Objekt, mit dem der Test ausgeführt wurde
beforeCommand
Wird ausgeführt, bevor ein WebdriverIO-Befehl ausgeführt wird.
Parameter:
commandName
(string
): Befehlsnameargs
(*
): Argumente, die der Befehl erhalten würde
afterCommand
Wird ausgeführt, nachdem ein WebdriverIO-Befehl ausgeführt wurde.
Parameter:
commandName
(string
): Befehlsnameargs
(*
): Argumente, die der Befehl erhalten würderesult
(Zahl
): 0 - wenn Befehl erfolgreich wurde, 1 - beim Fehlererror
(Fehler
): Fehlerobjekt, falls vorhanden
afterTest
Funktion, die nach dem Ende eines Tests (in Mocha/Jasmine) ausgeführt werden soll.
Parameter:
test
(Objekt
): Testdetailscontext
(Objekt
): Scope-Objekt, mit dem der Test ausgeführt wurderesult.error
(Error
): Fehlerobjekt falls der Test fehlschlägt, ansonstenundefiniert
result.result
(Any
): Ergebniss der Testfunktionresult.duration
(Ziffer
): Testdauerresult.passed
(Boolean
): wahr, wenn der Test bestanden wurde, andernfalls falschresult.retries
(Object
): information about single test related retries as defined for Mocha and Jasmine as well as Cucumber, e.g.{ attempts: 0, limit: 0 }
, seeresult
(Objekt
): Hook-Ergebnis (enthälterror
,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 – Fehlercaps
(Objekt
): Enthält die Capability, die für die Sitzung benutzt wurdespecs
(string[]
): Tests, die im Workerprozess ausgeführt wurden
afterSession
Wird direkt nach dem Beenden der Webdriver-Sitzung ausgeführt.
Parameter:
config
(object
): WebdriverIO-Konfigurationsobjektcaps
(Objekt
): Enthält die Capability, die für die Sitzung benutzt wurdespecs
(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 – Fehlerconfig
(object
): WebdriverIO-Konfigurationsobjektcaps
(Objekt
): Enthält Capabilities für Sitzungen, die im Worker Prozess genutzt wurdenErgebnis
(Objekt
): Ergebnisobjekt, das Testergebnisse enthält
onReload
Wird ausgeführt, wenn eine Session-Aktualisierung erfolgt.
Parameter:
oldSessionId
(string
): Sitzungs-ID der alten SitzungnewSessionId
(string
): Sitzungs-ID der neuen Sitzung
beforeFeature
Läuft vor einem Cucumber-Feature.
Parameter:
uri
(string
): Pfad zur Feature-Dateifeature
(GherkinDocument.IFeature
): Cucumber-Feature-Objekt
afterFeature
Läuft nach einem Cucumber-Feature.
Parameter:
uri
(string
): Pfad zur Feature-Dateifeature
(GherkinDocument.IFeature
): Cucumber-Feature-Objekt
beforeScenario
Läuft vor einem Cucumber-Szenario.
Parameter:
world
(ITestCaseHookParameter
): Weltobjekt, das Informationen zu Pickle und Testschritt enthältcontext
(Objekt
): Cucumber World-Objekt
afterScenario
Läuft nach einem Cucumber-Szenario.
Parameter:
world
(ITestCaseHookParameter
): Weltobjekt, das Informationen zu Pickle und Testschritt enthältresult
(Objekt
): Ergebnisobjekt, das das Szenarioergebnisse enthältresult.passed
(boolean
): wahr, wenn der Test bestanden wurde, andernfalls falschresult.error
(string
): Fehler, wenn Szenario fehlgeschlagen istresult.duration
(ziffer
): Testdauercontext
(Objekt
): Cucumber World-Objekt
beforeStep
Läuft vor einem Cucumber-Schritt.
Parameter:
step
(Pickle.IPickleStep
): Cucumber Objektscenario
(IPickle
): Cucumber-Szenario Objektcontext
(Objekt
): Cucumber World-Objekt
afterStep
Läuft nach einem Cucumber Schritt.
Parameter:
step
(Pickle.IPickleStep
): Cucumber Objektscenario
(IPickle
): Cucumber-Szenario Objektresult
(Objekt
): Ergebnisobjekt, das das Szenarioergebnisse enthältresult.passed
(boolean
): wahr, wenn der Test bestanden wurde, andernfalls falschresult.error
(string
): Fehler, wenn Szenario fehlgeschlagen istresult.duration
(ziffer
): Testdauercontext
(Objekt
): Cucumber World-Objekt
beforeAssertion
Hook that gets executed before a WebdriverIO assertion happens.
Parameters:
params
: assertion informationparams.matcherName
(string
): name of the matcher (e.g.toHaveTitle
)params.expectedValue
: value that is passed into the matcherparams.options
: assertion options
afterAssertion
Hook that gets executed after a WebdriverIO assertion happened.
Parameters:
params
: assertion informationparams.matcherName
(string
): name of the matcher (e.g.toHaveTitle
)params.expectedValue
: value that is passed into the matcherparams.options
: assertion optionsparams.result
: assertion results