Перейти до основного вмісту

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)
Параметри
НазваТипДеталі
typestringтип логу (наприклад, '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)
Параметри
НазваТипДеталі
conditionstring, 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)
Параметри
НазваТипДеталі
ratenumberСтавка, наскільки CPU повинен бути обмежений.
Приклади
// throttle CPU and make it run 4x slower
browser.throttleCPU(4)
// reset CPU throttling
browser.throttleCPU(0)

interceptRequest

Дозволяє модифікувати будь-який запит, зроблений браузером. Ви можете блокувати, змінювати або перенаправляти їх, як потрібно для ваших тестів.

Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.

Використання
browser.interceptRequest(rule)
Параметри
НазваТипДеталі
ruleobjectПравило, яке описує перехоплення запиту.
Приклади
// 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)
Параметри
НазваТипДеталі
namestringНазва завдання, для якого ви створили базовий рівень.
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)
Параметри
НазваТипДеталі
urlstringURL-шаблон для відповідності URL для імітації.
filterOptions
optional
objectДодаткові параметри фільтрації для URL для імітації (наприклад, заголовки, метод).
Повертає
  • <object> mockId: Об'єкт, що містить ідентифікатор імітованого ресурсу.

getMockCalls

Отримати інформацію про запити, які відповідають імітованому ресурсу.

Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.

Використання
browser.getMockCalls(mockId)
Параметри
НазваТипДеталі
mockIdStringідентифікатор імітації
Повертає
  • <object> requests: Список інформації про запити.

clearMockCalls

Очистити список імітаційних викликів.

Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.

Використання
browser.clearMockCalls(mockId, restore)
Параметри
НазваТипДеталі
mockIdStringідентифікатор імітації
restore
optional
booleanВстановіть значення true, якщо імітація також повинна бути відновлена.

respondMock

Відповісти, якщо імітація відповідає певному ресурсу.

Команда Sauce Labs. Більше деталей можна знайти в офіційній документації протоколу.

Використання
browser.respondMock(mockId, payload)
Параметри
НазваТипДеталі
mockIdStringідентифікатор імітації
payload
optional
objectІнформація про відповідь імітації.

Welcome! How can I help?

WebdriverIO AI Copilot