Перейти к основному содержанию

Sauce Labs

Все команды поддерживаются только в Chrome при использовании возможностей Расширенной отладки 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')
Примеры​
// Получить логи сети
console.log(browser.getPageLogs('sauce:network'));
/**
* выводит:
* [{
* "url": "https://app.saucelabs.com/dashboard",
* "statusCode": 200,
* "method": "GET",
* "requestHeaders": {
* ...
* },
* "responseHeaders": {
* ...
* },
* "timing": {
* ...
* }
* }, {,
* ...
* }]
*/
// Получить логи производительности (требуется возможность capturePerformance, см.: https://docs.saucelabs.com/performance/transitions/#setting-performance-capabilities
console.log(browser.getPageLogs('sauce:performance'));
/**
* выводит:
* {
* "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')
Примеры​
// предопределенное состояние сети
browser.sauceThrottleNetwork('offline')
// пользовательское состояние сети
browser.sauceThrottleNetwork({
download: 1000,
upload: 500,
latency: 40'
})

throttleCPU​

Вы можете ограничить CPU в DevTools, чтобы понять, как ваша страница работает при таком ограничении.

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

Использование​
browser.throttleCPU(rate)
Параметры​
ИмяТипДетали
ratenumberКоэффициент ограничения CPU.
Примеры​
// ограничить CPU и замедлить его в 4 раза
browser.throttleCPU(4)
// сбросить ограничения CPU
browser.throttleCPU(0)

interceptRequest​

Позволяет изменять любые запросы, сделанные браузером. Вы можете блокировать, изменять или перенаправлять их в соответствии с требованиями ваших тестов.

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

Использование​
browser.interceptRequest(rule)
Параметры​
ИмяТипДетали
ruleobjectПравило, описывающее перехват запроса.
Примеры​
// перенаправить запрос
browser.interceptRequest({
url: 'https://saucelabs.com',
redirect: 'https://google.com'
})
// Блокировать запросы к сторонним поставщикам
browser.interceptRequest({
url: 'https://api.segment.io/v1/p',
error: 'Failed'
})
// Изменить запросы к REST API (имитация ответа REST API)
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[]Названия метрик, которые вы хотите сравнить с базовым уровнем.
Пример​
// тестирование производительности страницы
browser.url('https://webdriver.io')
const hasRegression = browser.assertPerformance({
name: 'my performance test', // убедитесь, что имя также задано в опциях sauce в ваших capabilities
metrics: ['score', 'firstPaint']
})
Возвращает​
  • <object> hasRegression: Объект, содержащий результат, а также метрики о результате.

jankinessCheck​

Выполнить тест прокрутки, который оценивает плавность работы приложения.

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

Использование​
browser.jankinessCheck()
Пример​
// тестирование производительности страницы
browser.url('https://webdriver.io')
browser.jankinessCheck()
Возвращает​
  • <object> testResults: Объект, содержащий оценку, а также метрики плавности пользовательского интерфейса страницы во время теста.

mockRequest​

Имитирует сетевой ресурс.

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

Использование​
browser.mockRequest(url, filterOptions)
Параметры​
ИмяТипДетали
urlstringШаблон URL для соответствия URL, который нужно имитировать.
filterOptions
optional
objectДополнительные параметры фильтрации для URL, который нужно имитировать (например, headers, method).
Возвращает​
  • <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