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

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