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)
参数
名称 | 类型 | 详情 |
---|---|---|
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
您可以在 DevTools 中限制 CPU 以了解您的页面在该限制下的性能表现。
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 可选 | 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)
参数
名称 | 类型 | 详情 |
---|---|---|
url | string | 匹配要模拟的 URL 的通配符。 |
filterOptions 可选 | object | 要模拟的 URL 的附加筛选选项(例如 headers, method)。 |
返回
- <object>
mockId
: 包含模拟资源 ID 的对象。
getMockCalls
接收与模拟资源匹配的请求信息。
Sauce Labs 命令。更多详情可以在官方协议文档中找到。
用法
browser.getMockCalls(mockId)