跳到主要内容

Sauce Labs

所有命令仅在使用 Sauce Labs 的 Chrome 浏览器上支持 Extended Debugging 功能。您可以通过设置以下 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

您可以在 DevTools 中限制 CPU 以了解您的页面在该限制下的性能表现。

Sauce Labs 命令。更多详情可以在官方协议文档中找到。

用法
browser.throttleCPU(rate)
参数
名称类型详情
ratenumberCPU 应该被限制的比率。
示例
// 限制 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
可选
string[]您想要与基准进行比较的指标名称。
示例
// 测试页面性能
browser.url('https://webdriver.io')
const hasRegression = browser.assertPerformance({
name: 'my performance test', // 确保名称也在您的功能的 sauce options 中设置
metrics: ['score', 'firstPaint']
})
返回
  • <object> hasRegression: 包含结果以及关于结果的指标的对象。

jankinessCheck

执行滚动测试,评估应用程序的卡顿程度。

Sauce Labs 命令。更多详情可以在官方协议文档中找到。

用法
browser.jankinessCheck()
示例
// 测试页面性能
browser.url('https://webdriver.io')
browser.jankinessCheck()
返回
  • <object> testResults: 包含分数以及在测试期间页面 UX 流畅程度的指标的对象。

mockRequest

模拟网络资源。

Sauce Labs 命令。更多详情可以在官方协议文档中找到。

用法
browser.mockRequest(url, filterOptions)
参数
名称类型详情
urlstring匹配要模拟的 URL 的通配符。
filterOptions
可选
object要模拟的 URL 的附加筛选选项(例如 headers, method)。
返回
  • <object> mockId: 包含模拟资源 ID 的对象。

getMockCalls

接收与模拟资源匹配的请求信息。

Sauce Labs 命令。更多详情可以在官方协议文档中找到。

用法
browser.getMockCalls(mockId)
参数
名称类型详情
mockIdString模拟的 ID
返回
  • <object> requests: 请求信息列表。

clearMockCalls

清除模拟调用列表。

Sauce Labs 命令。更多详情可以在官方协议文档中找到。

用法
browser.clearMockCalls(mockId, restore)
参数
名称类型详情
mockIdString模拟的 ID
restore
可选
boolean如果模拟也应该被恢复,则设置为 true。

respondMock

当模拟匹配特定资源时响应。

Sauce Labs 命令。更多详情可以在官方协议文档中找到。

用法
browser.respondMock(mockId, payload)
参数
名称类型详情
mockIdString模拟的 ID
payload
可选
object模拟响应的信息。

Welcome! How can I help?

WebdriverIO AI Copilot