Sauce Labs
Toutes les commandes ne sont prises en charge que sur Chrome en utilisant les capacités de Débogage étendu de Sauce Labs. Vous pouvez les activer en définissant les options Sauce suivantes :
{
browserName: 'Chrome',
browserVersion: 'latest',
platformName: 'Windows 10',
'sauce:options': {
extendedDebugging: true
}
}
getPageLogs
Obtenez des informations de journal spécifiques à la page web basées sur le dernier chargement de page.
Commande Sauce Labs. Plus de détails peuvent être trouvés dans la documentation officielle du protocole.
Usage
browser.getPageLogs(type)
Parameters
Name | Type | Details |
---|---|---|
type | string | type de journal (par exemple 'sauce:network', 'sauce:performance') |
Examples
// 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,
* ...
* }
*/
Returns
- <object>
log
: sortie de journal du type souhaité (voir exemple)
sauceThrottleNetwork
Avec le conditionnement réseau, vous pouvez tester votre site sur diverses connexions réseau, y compris Edge, 3G et même hors ligne. Vous pouvez limiter le débit de données, y compris le débit maximum de téléchargement et d'envoi, et utiliser la manipulation de latence pour imposer un délai minimum au temps d'aller-retour de connexion (RTT).
Commande Sauce Labs. Plus de détails peuvent être trouvés dans la documentation officielle du protocole.
Usage
browser.sauceThrottleNetwork(condition)
Parameters
Name | Type | Details |
---|---|---|
condition | string, object | condition réseau à définir (par exemple 'online', 'offline', 'GPRS', 'Regular 2G', 'Good 2G', 'Regular 3G', 'Good 3G', 'Regular 4G', 'DSL', 'Wifi') |
Examples
// predefined network condition
browser.sauceThrottleNetwork('offline')
// custom network condition
browser.sauceThrottleNetwork({
download: 1000,
upload: 500,
latency: 40'
})
throttleCPU
Vous pouvez limiter le CPU dans DevTools pour comprendre comment votre page fonctionne sous cette contrainte.
Commande Sauce Labs. Plus de détails peuvent être trouvés dans la documentation officielle du protocole.
Usage
browser.throttleCPU(rate)
Parameters
Name | Type | Details |
---|---|---|
rate | number | Taux de limitation du CPU. |
Examples
// throttle CPU and make it run 4x slower
browser.throttleCPU(4)
// reset CPU throttling
browser.throttleCPU(0)
interceptRequest
Permet de modifier toute requête effectuée par le navigateur. Vous pouvez mettre sur liste noire, modifier ou rediriger ces requêtes selon les besoins de vos tests.
Commande Sauce Labs. Plus de détails peuvent être trouvés dans la documentation officielle du protocole.
Usage
browser.interceptRequest(rule)
Parameters
Name | Type | Details |
---|---|---|
rule | object | Une règle décrivant l'interception de la requête. |
Examples
// 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
Vérifier par rapport à la base de performance de votre application.
Commande Sauce Labs. Plus de détails peuvent être trouvés dans la documentation officielle du protocole.
Usage
browser.assertPerformance(name, metrics)
Parameters
Name | Type | Details |
---|---|---|
name | string | Nom du job avec lequel vous avez créé votre référence. |
metrics optional | string[] | Nom des métriques que vous souhaitez vérifier par rapport à la référence. |
Example
// 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']
})
Returns
- <object>
hasRegression
: Un objet contenant le résultat ainsi que des métriques sur le résultat.
jankinessCheck
Effectuez un test de défilement qui évalue la fluidité de l'application.
Commande Sauce Labs. Plus de détails peuvent être trouvés dans la documentation officielle du protocole.
Usage
browser.jankinessCheck()
Example
// test performance for a page
browser.url('https://webdriver.io')
browser.jankinessCheck()
Returns
- <object>
testResults
: Un objet contenant le score ainsi que des métriques sur la fluidité de l'UX de la page pendant le test.
mockRequest
Simule une ressource réseau.
Commande Sauce Labs. Plus de détails peuvent être trouvés dans la documentation officielle du protocole.
Usage
browser.mockRequest(url, filterOptions)
Parameters
Name | Type | Details |
---|---|---|
url | string | Modèle d'URL globale à faire correspondre pour simuler. |
filterOptions optional | object | Options de filtrage supplémentaires pour l'URL à simuler (par exemple, en-têtes, méthode). |
Returns
- <object>
mockId
: Un objet contenant l'identifiant d'une ressource simulée.
getMockCalls
Recevoir des informations sur les requêtes qui correspondent à la ressource simulée.
Commande Sauce Labs. Plus de détails peuvent être trouvés dans la documentation officielle du protocole.
Usage
browser.getMockCalls(mockId)
Parameters
Name | Type | Details |
---|---|---|
mockId | String | l'identifiant d'une simulation |
Returns
- <object>
requests
: Une liste d'informations sur les requêtes.
clearMockCalls
Effacer la liste des appels simulés.
Commande Sauce Labs. Plus de détails peuvent être trouvés dans la documentation officielle du protocole.
Usage
browser.clearMockCalls(mockId, restore)
Parameters
Name | Type | Details |
---|---|---|
mockId | String | l'identifiant d'une simulation |
restore optional | boolean | Mettre à true si la simulation doit également être restaurée. |
respondMock
Répondre si la simulation correspond à une ressource spécifique.
Commande Sauce Labs. Plus de détails peuvent être trouvés dans la documentation officielle du protocole.
Usage
browser.respondMock(mockId, payload)
Parameters
Name | Type | Details |
---|---|---|
mockId | String | l'identifiant d'une simulation |
payload optional | object | Informations sur la réponse simulée. |