Sauce Labs
Усі команди підтримуються лише у Chrome при використанні можливостей Extended Debugging від Sauce Labs. Ви можете активувати їх, встановивши наступні опції Sauce:
{
browserName: 'Chrome',
browserVersion: 'latest',
platformName: 'Windows 10',
'sauce:options': {
extendedDebugging: true
}
}
getPageLogs
Отримати специфічну лог-інформацію веб-сторінки на основі останнього завантаження сторінки.
Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.
Використання
browser.getPageLogs(type)
Параметри
Назва | Тип | Деталі |
---|---|---|
type | string | тип логу (наприклад, 'sauce:network', 'sauce:performance') |
Приклади
// 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,
* ...
* }
*/
Повертає
- <object>
log
: вивід логу бажаного типу (див. приклад)
sauceThrottleNetwork
За допомогою управління мережею ви можете тестувати ваш сайт на різних типах з'єднань, включаючи Edge, 3G, і навіть в режимі офлайн. Ви можете обмежити пропускну здатність даних, включаючи максимальну швидкість завантаження і вивантаження, а також використовувати маніпуляції затримки для забезпечення мінімальної затримки в часі обороту з'єднання (RTT).
Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.
Використання
browser.sauceThrottleNetwork(condition)
Параметри
Назва | Тип | Деталі |
---|---|---|
condition | string, object | умова мережі для встановлення (наприклад, 'online', 'offline', 'GPRS', 'Regular 2G', 'Good 2G', 'Regular 3G', 'Good 3G', 'Regular 4G', 'DSL', 'Wifi') |
Приклади
// predefined network condition
browser.sauceThrottleNetwork('offline')
// custom network condition
browser.sauceThrottleNetwork({
download: 1000,
upload: 500,
latency: 40'
})
throttleCPU
Ви можете обмежити CPU в DevTools, щоб зрозуміти, як ваша сторінка працює в цих обмеженнях.
Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.
Використання
browser.throttleCPU(rate)
Параметри
Назва | Тип | Деталі |
---|---|---|
rate | number | Ставка, наскільки CPU повинен бути обмежений. |
Приклади
// throttle CPU and make it run 4x slower
browser.throttleCPU(4)
// reset CPU throttling
browser.throttleCPU(0)
interceptRequest
Дозволяє модифікувати будь-який запит, зроблений браузером. Ви можете блокувати, змінювати або перенаправляти їх, як потрібно для ваших тестів.
Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.
Використання
browser.interceptRequest(rule)
Параметри
Назва | Тип | Деталі |
---|---|---|
rule | object | Правило, яке описує перехоплення запиту. |
Приклади
// 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
Перевірити продуктивність вашого додатка порівняно з базовим рівнем.
Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.
Використання
browser.assertPerformance(name, metrics)
Параметри
Назва | Тип | Деталі |
---|---|---|
name | string | Назва завдання, для якого ви створили базовий рівень. |
metrics optional | string[] | Назви метрик, які ви хочете перевірити порівняно з базовим рівнем. |
Приклад
// 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']
})
Повертає
- <object>
hasRegression
: Об'єкт, що містить результат, а також метрики про результат.
jankinessCheck
Виконати тест прокрутки, який оцінює плавність (відсутність ривків) роботи додатка.
Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.
Використання
browser.jankinessCheck()
Приклад
// test performance for a page
browser.url('https://webdriver.io')
browser.jankinessCheck()
Повертає
- <object>
testResults
: Об'єкт, що містить оцінку, а також метрики щодо того, наскільки плавним був UX сторінки під час тесту.
mockRequest
Імітує мережевий ресурс.
Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.
Використання
browser.mockRequest(url, filterOptions)
Параметри
Назва | Тип | Деталі |
---|---|---|
url | string | URL-шаблон для відповідності URL для імітації. |
filterOptions optional | object | Додаткові параметри фільтрації для URL для імітації (наприклад, заголовки, метод). |
Повертає
- <object>
mockId
: Об'єкт, що містить ідентифікатор імітованого ресурсу.
getMockCalls
Отримати інформацію про запити, які відповідають імітованому ресурсу.
Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.
Використання
browser.getMockCalls(mockId)
Параметри
Назва | Тип | Деталі |
---|---|---|
mockId | String | ідентифікатор імітації |
Повертає
- <object>
requests
: Список інформації про запити.
clearMockCalls
Очистити список імітаційних викликів.
Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.
Використання
browser.clearMockCalls(mockId, restore)
Параметри
Назва | Тип | Деталі |
---|---|---|
mockId | String | ідентифікатор імітації |
restore optional | boolean | Встановіть значення true, якщо імітація також повинна бути відновлена. |
respondMock
Відповісти, якщо імітація відповідає певному ресурсу.
Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.
Використання
browser.respondMock(mockId, payload)
Параметри
Назва | Тип | Деталі |
---|---|---|
mockId | String | ідентифікатор імітації |
payload optional | object | Інформація про відповідь імітації. |