Sauce Labs
Todos los comandos solo son compatibles con Chrome usando las capacidades de Depuración Extendida de Sauce Labs. Puedes habilitarlas configurando las siguientes opciones de Sauce:
{
browserName: 'Chrome',
browserVersion: 'latest',
platformName: 'Windows 10',
'sauce:options': {
extendedDebugging: true
}
}
getPageLogs
Obtén información específica de registro de la página web basada en la última carga de página.
Comando de Sauce Labs. Más detalles se pueden encontrar en la documentación oficial del protocolo.
Uso
browser.getPageLogs(type)
Parámetros
Nombre | Tipo | Detalles |
---|---|---|
type | string | tipo de registro (por ejemplo, 'sauce:network', 'sauce:performance') |
Ejemplos
// 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,
* ...
* }
*/
Devuelve
- <object>
log
: salida de registro del tipo deseado (ver ejemplo)
sauceThrottleNetwork
Con el acondicionamiento de red puedes probar tu sitio en una variedad de conexiones de red, incluyendo Edge, 3G, e incluso sin conexión. Puedes limitar el rendimiento de datos, incluyendo la velocidad máxima de descarga y carga, y usar la manipulación de latencia para forzar un retraso mínimo en el tiempo de ida y vuelta de la conexión (RTT).
Comando de Sauce Labs. Más detalles se pueden encontrar en la documentación oficial del protocolo.
Uso
browser.sauceThrottleNetwork(condition)
Parámetros
Nombre | Tipo | Detalles |
---|---|---|
condition | string, object | condición de red a establecer (por ejemplo, 'online', 'offline', 'GPRS', 'Regular 2G', 'Good 2G', 'Regular 3G', 'Good 3G', 'Regular 4G', 'DSL', 'Wifi') |
Ejemplos
// predefined network condition
browser.sauceThrottleNetwork('offline')
// custom network condition
browser.sauceThrottleNetwork({
download: 1000,
upload: 500,
latency: 40'
})
throttleCPU
Puedes limitar la CPU en DevTools para entender cómo se comporta tu página bajo esa restricción.
Comando de Sauce Labs. Más detalles se pueden encontrar en la documentación oficial del protocolo.
Uso
browser.throttleCPU(rate)
Parámetros
Nombre | Tipo | Detalles |
---|---|---|
rate | number | Tasa sobre cuánto debe limitarse la CPU. |
Ejemplos
// throttle CPU and make it run 4x slower
browser.throttleCPU(4)
// reset CPU throttling
browser.throttleCPU(0)
interceptRequest
Permite modificar cualquier solicitud realizada por el navegador. Puedes poner en lista negra, modificar o redirigir estas según sea necesario para tus pruebas.
Comando de Sauce Labs. Más detalles se pueden encontrar en la documentación oficial del protocolo.
Uso
browser.interceptRequest(rule)
Parámetros
Nombre | Tipo | Detalles |
---|---|---|
rule | object | Una regla que describe la interceptación de solicitud. |
Ejemplos
// 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
Afirma contra la línea base de rendimiento de tu aplicación.
Comando de Sauce Labs. Más detalles se pueden encontrar en la documentación oficial del protocolo.
Uso
browser.assertPerformance(name, metrics)
Parámetros
Nombre | Tipo | Detalles |
---|---|---|
name | string | Nombre del trabajo con el que creaste tu línea base. |
metrics opcional | string[] | Nombre de las métricas contra las que quieres afirmar la línea base. |
Ejemplo
// 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']
})
Devuelve
- <object>
hasRegression
: Un objeto que contiene el resultado así como métricas sobre el resultado.
jankinessCheck
Realiza una prueba de desplazamiento que evalúa la inestabilidad de la aplicación.
Comando de Sauce Labs. Más detalles se pueden encontrar en la documentación oficial del protocolo.
Uso
browser.jankinessCheck()
Ejemplo
// test performance for a page
browser.url('https://webdriver.io')
browser.jankinessCheck()
Devuelve
- <object>
testResults
: Un objeto que contiene la puntuación así como métricas sobre cuán fluida fue la experiencia de usuario de la página durante la prueba.
mockRequest
Simula un recurso de red.
Comando de Sauce Labs. Más detalles se pueden encontrar en la documentación oficial del protocolo.
Uso
browser.mockRequest(url, filterOptions)
Parámetros
Nombre | Tipo | Detalles |
---|---|---|
url | string | Patrón URL para coincidir con la URL a simular. |
filterOptions opcional | object | Opciones de filtro adicionales para la URL a simular (por ejemplo, encabezados, método). |
Devuelve
- <object>
mockId
: Un objeto que contiene el ID de un recurso simulado.
getMockCalls
Recibe información de solicitud sobre solicitudes que coinciden con el recurso simulado.
Comando de Sauce Labs. Más detalles se pueden encontrar en la documentación oficial del protocolo.
Uso
browser.getMockCalls(mockId)
Parámetros
Nombre | Tipo | Detalles |
---|---|---|
mockId | String | el ID de una simulación |
Devuelve
- <object>
requests
: Una lista de información de solicitudes.
clearMockCalls
Limpia la lista de llamadas simuladas.
Comando de Sauce Labs. Más detalles se pueden encontrar en la documentación oficial del protocolo.
Uso
browser.clearMockCalls(mockId, restore)
Parámetros
Nombre | Tipo | Detalles |
---|---|---|
mockId | String | el ID de una simulación |
restore opcional | boolean | Establecer en true si la simulación también debe ser restaurada. |
respondMock
Responde si la simulación coincide con un recurso específico.
Comando de Sauce Labs. Más detalles se pueden encontrar en la documentación oficial del protocolo.
Uso
browser.respondMock(mockId, payload)
Parámetros
Nombre | Tipo | Detalles |
---|---|---|
mockId | String | el ID de una simulación |
payload opcional | object | Información sobre la respuesta simulada. |