Sauce Labs
Tutti i comandi sono supportati solo su Chrome utilizzando le funzionalità Extended Debugging di Sauce Labs. Puoi abilitarle impostando le seguenti opzioni Sauce:
{
browserName: 'Chrome',
browserVersion: 'latest',
platformName: 'Windows 10',
'sauce:options': {
extendedDebugging: true
}
}
getPageLogs
Ottieni informazioni di log specifiche della pagina web basate sull'ultimo caricamento della pagina.
Comando di Sauce Labs. Maggiori dettagli possono essere trovati nella documentazione ufficiale del protocollo.
Utilizzo
browser.getPageLogs(type)
Parametri
Nome | Tipo | Dettagli |
---|---|---|
type | string | tipo di log (ad es. 'sauce:network', 'sauce:performance') |
Esempi
// 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,
* ...
* }
*/
Restituisce
- <object>
log
: output del log del tipo desiderato (vedi esempio)
sauceThrottleNetwork
Con il condizionamento della rete puoi testare il tuo sito su una varietà di connessioni di rete, inclusi Edge, 3G e persino offline. Puoi limitare la velocità di trasmissione dati, inclusa la velocità massima di download e upload, e utilizzare la manipolazione della latenza per imporre un ritardo minimo nel tempo di andata e ritorno della connessione (RTT).
Comando di Sauce Labs. Maggiori dettagli possono essere trovati nella documentazione ufficiale del protocollo.
Utilizzo
browser.sauceThrottleNetwork(condition)
Parametri
Nome | Tipo | Dettagli |
---|---|---|
condition | string, object | condizione di rete da impostare (ad es. 'online', 'offline', 'GPRS', 'Regular 2G', 'Good 2G', 'Regular 3G', 'Good 3G', 'Regular 4G', 'DSL', 'Wifi') |
Esempi
// predefined network condition
browser.sauceThrottleNetwork('offline')
// custom network condition
browser.sauceThrottleNetwork({
download: 1000,
upload: 500,
latency: 40'
})
throttleCPU
Puoi limitare la CPU in DevTools per capire come si comporta la tua pagina con questo vincolo.
Comando di Sauce Labs. Maggiori dettagli possono essere trovati nella documentazione ufficiale del protocollo.
Utilizzo
browser.throttleCPU(rate)
Parametri
Nome | Tipo | Dettagli |
---|---|---|
rate | number | Tasso di quanto la CPU dovrebbe essere limitata. |
Esempi
// throttle CPU and make it run 4x slower
browser.throttleCPU(4)
// reset CPU throttling
browser.throttleCPU(0)
interceptRequest
Consente di modificare qualsiasi richiesta effettuata dal browser. Puoi mettere in blacklist, modificare o reindirizzare queste richieste secondo le necessità dei tuoi test.
Comando di Sauce Labs. Maggiori dettagli possono essere trovati nella documentazione ufficiale del protocollo.
Utilizzo
browser.interceptRequest(rule)
Parametri
Nome | Tipo | Dettagli |
---|---|---|
rule | object | Una regola che descrive l'intercettazione della richiesta. |
Esempi
// 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
Verifica le prestazioni rispetto alla baseline della tua app.
Comando di Sauce Labs. Maggiori dettagli possono essere trovati nella documentazione ufficiale del protocollo.
Utilizzo
browser.assertPerformance(name, metrics)
Parametri
Nome | Tipo | Dettagli |
---|---|---|
name | string | Nome del job con cui hai creato la tua baseline. |
metrics optional | string[] | Nome delle metriche che vuoi verificare rispetto alla baseline. |
Esempio
// 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']
})
Restituisce
- <object>
hasRegression
: Un oggetto contenente il risultato e le metriche relative al risultato.
jankinessCheck
Esegue un test di scorrimento che valuta la fluidità dell'applicazione.
Comando di Sauce Labs. Maggiori dettagli possono essere trovati nella documentazione ufficiale del protocollo.
Utilizzo
browser.jankinessCheck()
Esempio
// test performance for a page
browser.url('https://webdriver.io')
browser.jankinessCheck()
Restituisce
- <object>
testResults
: Un oggetto contenente il punteggio e le metriche relative alla fluidità dell'UX della pagina durante il test.
mockRequest
Simula una risorsa di rete.
Comando di Sauce Labs. Maggiori dettagli possono essere trovati nella documentazione ufficiale del protocollo.
Utilizzo
browser.mockRequest(url, filterOptions)
Parametri
Nome | Tipo | Dettagli |
---|---|---|
url | string | URL glob da abbinare all'URL da simulare. |
filterOptions optional | object | Opzioni di filtro aggiuntive per l'URL da simulare (ad es. headers, method). |
Restituisce
- <object>
mockId
: Un oggetto contenente l'ID di una risorsa simulata.
getMockCalls
Ricevi informazioni sulle richieste che corrispondono alla risorsa simulata.
Comando di Sauce Labs. Maggiori dettagli possono essere trovati nella documentazione ufficiale del protocollo.
Utilizzo
browser.getMockCalls(mockId)
Parametri
Nome | Tipo | Dettagli |
---|---|---|
mockId | String | l'ID di una simulazione |
Restituisce
- <object>
requests
: Un elenco di informazioni sulle richieste.
clearMockCalls
Cancella l'elenco delle chiamate simulate.
Comando di Sauce Labs. Maggiori dettagli possono essere trovati nella documentazione ufficiale del protocollo.
Utilizzo
browser.clearMockCalls(mockId, restore)
Parametri
Nome | Tipo | Dettagli |
---|---|---|
mockId | String | l'ID di una simulazione |
restore optional | boolean | Imposta su true se la simulazione deve essere ripristinata. |
respondMock
Risponde se la simulazione corrisponde a una risorsa specifica.
Comando di Sauce Labs. Maggiori dettagli possono essere trovati nella documentazione ufficiale del protocollo.
Utilizzo
browser.respondMock(mockId, payload)
Parametri
Nome | Tipo | Dettagli |
---|---|---|
mockId | String | l'ID di una simulazione |
payload optional | object | Informazioni sulla risposta simulata. |