Sauce Labs
Все команды поддерживаются только в Chrome при использовании возможностей Расширенной отладки 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') |
Примеры
// Получить логи сети
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)
Параметры
Имя | Тип | Детали |
---|---|---|
condition | string, 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)
Параметры
Имя | Тип | Детали |
---|---|---|
rate | number | Коэффициент ограничения CPU. |
Примеры
// ограничить CPU и замедлить его в 4 раза
browser.throttleCPU(4)
// сбросить ограничения CPU
browser.throttleCPU(0)
interceptRequest
Позволяет изменять любые запросы, сделанные браузером. Вы можете блокировать, изменять или перенаправлять их в соответствии с требованиями ваших тестов.
Команда Sauce Labs. Более подробную информацию можно найти в официальной документации протокола.
Использование
browser.interceptRequest(rule)
Параметры
Имя | Тип | Детали |
---|---|---|
rule | object | Правило, описывающее перехват запроса. |
Примеры
// перенаправить запрос
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)
Параметры
Имя | Тип | Детали |
---|---|---|
name | string | Имя задания, с которым вы создали базовый уровень. |
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)
Параметры
Имя | Тип | Детали |
---|---|---|
url | string | Шаблон URL для соответствия URL, который нужно имитировать. |
filterOptions optional | object | Дополнительные параметры фильтрации для URL, который нужно имитировать (например, headers, method). |
Возвращает
- <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 | Информация об ответе имитации. |