Sauce Labs
Alle Befehle werden nur für Chrome mit Sauce Labs Extended Debugging Funktionen unterstützt. Sie können diese aktivieren, indem Sie die folgenden Sauce-Optionen setzen:
{
browserName: 'Chrome',
browserVersion: 'latest',
platformName: 'Windows 10',
'sauce:options': {
extendedDebugging: true
}
}
getPageLogs
Erhalten Sie webseiten-spezifische Log-Informationen basierend auf dem letzten Seitenladevorgang.
Sauce Labs Befehl. Weitere Details finden Sie in der offiziellen Protokoll-Dokumentation.
Verwendung
browser.getPageLogs(type)
Parameter
Name | Typ | Details |
---|---|---|
type | string | Log-Typ (z.B. 'sauce:network', 'sauce:performance') |
Beispiele
// Get Network Logs
console.log(browser.getPageLogs('sauce:network'));
/**
* outputs:
* [{
* "url": "https://app.saucelabs.com/dashboard",
* "statusCode": 200,
* "method": "GET",
* "requestHeaders": {
* ...
* },
* "responseHeaders": {
* ...
* },
* "timing": {
* ...
* }
* }, {,
* ...
* }]
*/
// Get Performance Logs (needs capturePerformance capability see: https://docs.saucelabs.com/performance/transitions/#setting-performance-capabilities
console.log(browser.getPageLogs('sauce:performance'));
/**
* outputs:
* {
* "speedIndex": 1472.023,
* "timeToFirstInteractive": 1243.214,
* "firstMeaningfulPaint": 892.643,
* ...
* }
*/
Rückgabewert
- <object>
log
: Log-Ausgabe des gewünschten Typs (siehe Beispiel)
sauceThrottleNetwork
Mit Netzwerkbedingungen können Sie Ihre Website auf verschiedenen Netzwerkverbindungen testen, einschließlich Edge, 3G und sogar offline. Sie können den Datendurchsatz drosseln, einschließlich des maximalen Download- und Upload-Durchsatzes, und Latenzmanipulation verwenden, um eine Mindestverzögerung in der Verbindungs-Rundumlaufzeit (RTT) zu erzwingen.
Sauce Labs Befehl. Weitere Details finden Sie in der offiziellen Protokoll-Dokumentation.
Verwendung
browser.sauceThrottleNetwork(condition)
Parameter
Name | Typ | Details |
---|---|---|
condition | string, object | Netzwerkbedingung, die eingestellt werden soll (z.B. 'online', 'offline', 'GPRS', 'Regular 2G', 'Good 2G', 'Regular 3G', 'Good 3G', 'Regular 4G', 'DSL', 'Wifi') |
Beispiele
// predefined network condition
browser.sauceThrottleNetwork('offline')
// custom network condition
browser.sauceThrottleNetwork({
download: 1000,
upload: 500,
latency: 40'
})
throttleCPU
Sie können die CPU in DevTools drosseln, um zu verstehen, wie Ihre Seite unter dieser Einschränkung funktioniert.
Sauce Labs Befehl. Weitere Details finden Sie in der offiziellen Protokoll-Dokumentation.
Verwendung
browser.throttleCPU(rate)
Parameter
Name | Typ | Details |
---|---|---|
rate | number | Rate, wie stark die CPU gedrosselt werden soll. |
Beispiele
// throttle CPU and make it run 4x slower
browser.throttleCPU(4)
// reset CPU throttling
browser.throttleCPU(0)
interceptRequest
Ermöglicht die Modifikation jeder vom Browser getätigten Anfrage. Sie können diese Anfragen nach Bedarf für Ihre Tests auf die schwarze Liste setzen, modifizieren oder umleiten.
Sauce Labs Befehl. Weitere Details finden Sie in der offiziellen Protokoll-Dokumentation.
Verwendung
browser.interceptRequest(rule)
Parameter
Name | Typ | Details |
---|---|---|
rule | object | Eine Regel, die die Anfragenabfangung beschreibt. |
Beispiele
// redirect a request
browser.interceptRequest({
url: 'https://saucelabs.com',
redirect: 'https://google.com'
})
// Blacklist requests to 3rd party vendors
browser.interceptRequest({
url: 'https://api.segment.io/v1/p',
error: 'Failed'
})
// Modify requests to REST API (Mock REST API response)
browser.interceptRequest({
url: 'http://sampleapp.appspot.com/api/todos',
response: {
headers: {
'x-custom-headers': 'foobar'
},
body: [{
title: 'My custom todo',
order: 1,
completed: false,
url: 'http://todo-backend-express.herokuapp.com/15727'
}]
}
})
assertPerformance
Prüfen Sie gegen die Performance-Baseline Ihrer App.
Sauce Labs Befehl. Weitere Details finden Sie in der offiziellen Protokoll-Dokumentation.
Verwendung
browser.assertPerformance(name, metrics)
Parameter
Name | Typ | Details |
---|---|---|
name | string | Name des Jobs, mit dem Sie Ihre Baseline erstellt haben. |
metrics optional | string[] | Name der Metriken, die Sie gegen die Baseline prüfen möchten. |
Beispiel
// test performance for a page
browser.url('https://webdriver.io')
const hasRegression = browser.assertPerformance({
name: 'my performance test', // make sure that the name is also set in the sauce options in your capabilities
metrics: ['score', 'firstPaint']
})
Rückgabewert
- <object>
hasRegression
: Ein Objekt, das das Ergebnis sowie Metriken über das Ergebnis enthält.
jankinessCheck
Führen Sie einen Scrolltest durch, der die Ruckeligkeit der Anwendung auswertet.
Sauce Labs Befehl. Weitere Details finden Sie in der offiziellen Protokoll-Dokumentation.
Verwendung
browser.jankinessCheck()
Beispiel
// test performance for a page
browser.url('https://webdriver.io')
browser.jankinessCheck()
Rückgabewert
- <object>
testResults
: Ein Objekt, das die Punktzahl sowie Metriken zur Geschmeidigkeit der UX der Seite während des Tests enthält.
mockRequest
Mockt eine Netzwerkressource.
Sauce Labs Befehl. Weitere Details finden Sie in der offiziellen Protokoll-Dokumentation.
Verwendung
browser.mockRequest(url, filterOptions)
Parameter
Name | Typ | Details |
---|---|---|
url | string | URL-Glob, um die zu mockende URL abzugleichen. |
filterOptions optional | object | Zusätzliche Filteroptionen für die zu mockende URL (z.B. headers, method). |
Rückgabewert
- <object>
mockId
: Ein Objekt, das die ID einer Mock-Ressource enthält.
getMockCalls
Erhalten Sie Anfrageinformationen über Anfragen, die mit der gemockten Ressource übereinstimmen.
Sauce Labs Befehl. Weitere Details finden Sie in der offiziellen Protokoll-Dokumentation.
Verwendung
browser.getMockCalls(mockId)
Parameter
Name | Typ | Details |
---|---|---|
mockId | String | die ID eines Mocks |
Rückgabewert
- <object>
requests
: Eine Liste von Anfrageinformationen.
clearMockCalls
Leeren Sie die Liste der Mock-Aufrufe.
Sauce Labs Befehl. Weitere Details finden Sie in der offiziellen Protokoll-Dokumentation.
Verwendung
browser.clearMockCalls(mockId, restore)
Parameter
Name | Typ | Details |
---|---|---|
mockId | String | die ID eines Mocks |
restore optional | boolean | Auf true setzen, wenn der Mock ebenfalls wiederhergestellt werden soll. |
respondMock
Antworten, wenn der Mock einer bestimmten Ressource entspricht.
Sauce Labs Befehl. Weitere Details finden Sie in der offiziellen Protokoll-Dokumentation.
Verwendung
browser.respondMock(mockId, payload)
Parameter
Name | Typ | Details |
---|---|---|
mockId | String | die ID eines Mocks |
payload optional | object | Informationen zur Mock-Antwort. |