Sauce Labs
Wszystkie komendy są obsługiwane tylko na Chrome przy użyciu funkcji Sauce Labs Extended Debugging. Możesz je włączyć, ustawiając następujące opcje Sauce:
{
browserName: 'Chrome',
browserVersion: 'latest',
platformName: 'Windows 10',
'sauce:options': {
extendedDebugging: true
}
}
getPageLogs
Uzyskaj informacje z logów specyficzne dla strony internetowej na podstawie ostatniego załadowania strony.
Komenda Sauce Labs. Więcej szczegółów można znaleźć w oficjalnej dokumentacji protokołu.
Użycie
browser.getPageLogs(type)
Parametry
Nazwa | Typ | Szczegóły |
---|---|---|
type | string | typ logu (np. 'sauce:network', 'sauce:performance') |
Przykłady
// 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,
* ...
* }
*/
Zwraca
- <object>
log
: wynik logu żądanego typu (patrz przykład)
sauceThrottleNetwork
Dzięki kontroli sieci możesz testować swoją stronę na różnych połączeniach sieciowych, w tym Edge, 3G, a nawet w trybie offline. Możesz ograniczyć przepustowość danych, w tym maksymalną przepustowość pobierania i wysyłania, a także wykorzystać manipulację opóźnieniem, aby wymusić minimalne opóźnienie w czasie podróży połączenia (RTT).
Komenda Sauce Labs. Więcej szczegółów można znaleźć w oficjalnej dokumentacji protokołu.
Użycie
browser.sauceThrottleNetwork(condition)
Parametry
Nazwa | Typ | Szczegóły |
---|---|---|
condition | string, object | warunek sieciowy do ustawienia (np. 'online', 'offline', 'GPRS', 'Regular 2G', 'Good 2G', 'Regular 3G', 'Good 3G', 'Regular 4G', 'DSL', 'Wifi') |
Przykłady
// predefined network condition
browser.sauceThrottleNetwork('offline')
// custom network condition
browser.sauceThrottleNetwork({
download: 1000,
upload: 500,
latency: 40'
})
throttleCPU
Możesz ograniczyć CPU w DevTools, aby zrozumieć, jak Twoja strona działa w takich warunkach.
Komenda Sauce Labs. Więcej szczegółów można znaleźć w oficjalnej dokumentacji protokołu.
Użycie
browser.throttleCPU(rate)
Parametry
Nazwa | Typ | Szczegóły |
---|---|---|
rate | number | Współczynnik określający, jak bardzo CPU powinno być ograniczone. |
Przykłady
// throttle CPU and make it run 4x slower
browser.throttleCPU(4)
// reset CPU throttling
browser.throttleCPU(0)
interceptRequest
Pozwala modyfikować dowolne żądania wykonywane przez przeglądarkę. Możesz zablokować, zmodyfikować lub przekierować te żądania zgodnie z wymaganiami testów.
Komenda Sauce Labs. Więcej szczegółów można znaleźć w oficjalnej dokumentacji protokołu.
Użycie
browser.interceptRequest(rule)
Parametry
Nazwa | Typ | Szczegóły |
---|---|---|
rule | object | Reguła opisująca przechwytywanie żądania. |
Przykłady
// 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
Dokonaj porównania z bazową wydajnością Twojej aplikacji.
Komenda Sauce Labs. Więcej szczegółów można znaleźć w oficjalnej dokumentacji protokołu.
Użycie
browser.assertPerformance(name, metrics)
Parametry
Nazwa | Typ | Szczegóły |
---|---|---|
name | string | Nazwa zadania, dla którego utworzyłeś linię bazową. |
metrics optional | string[] | Nazwy metryk, które chcesz porównać z linią bazową. |
Przykład
// 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']
})
Zwraca
- <object>
hasRegression
: Obiekt zawierający wynik oraz metryki dotyczące wyniku.
jankinessCheck
Wykonaj test przewijania, który ocenia płynność działania aplikacji.
Komenda Sauce Labs. Więcej szczegółów można znaleźć w oficjalnej dokumentacji protokołu.
Użycie
browser.jankinessCheck()
Przykład
// test performance for a page
browser.url('https://webdriver.io')
browser.jankinessCheck()
Zwraca
- <object>
testResults
: Obiekt zawierający wynik oraz metryki dotyczące płynności UX strony podczas testu.
mockRequest
Symuluje zasób sieciowy.
Komenda Sauce Labs. Więcej szczegółów można znaleźć w oficjalnej dokumentacji protokołu.
Użycie
browser.mockRequest(url, filterOptions)
Parametry
Nazwa | Typ | Szczegóły |
---|---|---|
url | string | Glob URL do dopasowania adresu URL do symulacji. |
filterOptions optional | object | Dodatkowe opcje filtrowania dla adresu URL do symulacji (np. nagłówki, metoda). |
Zwraca
- <object>
mockId
: Obiekt zawierający identyfikator symulowanego zasobu.
getMockCalls
Odbierz informacje o żądaniach, które pasują do symulowanego zasobu.
Komenda Sauce Labs. Więcej szczegółów można znaleźć w oficjalnej dokumentacji protokołu.
Użycie
browser.getMockCalls(mockId)
Parametry
Nazwa | Typ | Szczegóły |
---|---|---|
mockId | String | identyfikator symulacji |
Zwraca
- <object>
requests
: Lista informacji o żądaniach.
clearMockCalls
Wyczyść listę wywołań symulacji.
Komenda Sauce Labs. Więcej szczegółów można znaleźć w oficjalnej dokumentacji protokołu.
Użycie
browser.clearMockCalls(mockId, restore)
Parametry
Nazwa | Typ | Szczegóły |
---|---|---|
mockId | String | identyfikator symulacji |
restore optional | boolean | Ustaw na true, jeśli symulacja powinna zostać również przywrócona. |
respondMock
Odpowiedz, jeśli symulacja pasuje do określonego zasobu.
Komenda Sauce Labs. Więcej szczegółów można znaleźć w oficjalnej dokumentacji protokołu.
Użycie
browser.respondMock(mockId, payload)
Parametry
Nazwa | Typ | Szczegóły |
---|---|---|
mockId | String | identyfikator symulacji |
payload optional | object | Informacje o odpowiedzi symulacji. |