跳至主要内容

Sauce Labs

所有命令仅在使用 Sauce Labs 扩展调试功能的 Chrome 上受支持。您可以通过设置以下 Sauce 选项来启用这些功能

{
browserName: 'Chrome',
browserVersion: 'latest',
platformName: 'Windows 10',
'sauce:options': {
extendedDebugging: true
}
}

getPageLogs

根据上次页面加载获取特定网页的日志信息。

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

用法
browser.getPageLogs(type)
参数
名称类型详情
类型字符串日志类型(例如 sauce:network', 'sauce:performance')
示例
// Get Network Logs
console.log(browser.getPageLogs('sauce:network'));
/**
* outputs:
* [{
* "url": "https://app.saucelabs.com/dashboard",
* "statusCode": 200,
* "method": "GET",
* "requestHeaders": {
* ...
* },
* "responseHeaders": {
* ...
* },
* "timing": {
* ...
* }
* }, {,
* ...
* }]
*/
// Get Performance Logs (needs capturePerformance capability see: https://wiki.saucelabs.com/display/DOCS/Measure+Page+Load+Performance+Using+Test+Automation#MeasurePageLoadPerformanceUsingTestAutomation-EnableYourScript)
console.log(browser.getPageLogs('sauce:performance'));
/**
* outputs:
* {
* "speedIndex": 1472.023,
* "timeToFirstInteractive": 1243.214,
* "firstMeaningfulPaint": 892.643,
* ...
* }
*/
返回值
  • <object> log:所需类型的日志输出(参见示例)

sauceThrottleNetwork

通过网络调节,您可以在各种网络连接上测试您的网站,包括 Edge、3G,甚至离线。您可以限制数据吞吐量,包括最大下载和上传吞吐量,并使用延迟操作来强制连接往返时间 (RTT) 的最小延迟。

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

用法
browser.sauceThrottleNetwork(condition)
参数
名称类型详情
条件字符串,对象要设置的网络条件(例如“联机”、“脱机”、“GPRS”、“普通 2G”、“良好 2G”、“普通 3G”、“良好 3G”、“普通 4G”、“DSL”、“Wi-Fi”)
示例
// predefined network condition
browser.sauceThrottleNetwork('offline')
// custom network condition
browser.sauceThrottleNetwork({
download: 1000,
upload: 500,
latency: 40'
})

throttleCPU

您可以在 DevTools 中限制 CPU,以了解您的页面在该限制下如何执行。

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

用法
browser.throttleCPU(rate)
参数
名称类型详情
速率数字CPU 应受到限制的程度。
示例
// throttle CPU and make it run 4x slower
browser.throttleCPU(4)
// reset CPU throttling
browser.throttleCPU(0)

interceptRequest

允许修改浏览器发出的任何请求。您可以根据测试需要将它们列入黑名单、修改或重定向。

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

用法
browser.interceptRequest(rule)
参数
名称类型详情
规则对象描述请求拦截的规则。
示例
// redirect a request
browser.interceptRequest({
url: 'https://saucelabs.com',
redirect: 'https://google.com'
})
// Blacklist requests to 3rd party vendors
browser.interceptRequest({
url: 'https://api.segment.io/v1/p',
error: 'Failed'
})
// Modify requests to REST API (Mock REST API response)
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)
参数
名称类型详情
名称字符串您创建基线的作业的名称。
指标
可选
字符串[]您想要针对基线断言的指标名称。
示例
// test performance for a page
browser.url('https://webdriverio.node.org.cn')
const hasRegression = browser.assertPerformance({
name: 'my performance test', // make sure that the name is also set in the sauce options in your capabilities
metrics: ['score', 'firstPaint']
})
返回值
  • <object> hasRegression:包含结果以及有关结果的指标的对象。

jankinessCheck

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

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

用法
browser.jankinessCheck()
示例
// test performance for a page
browser.url('https://webdriverio.node.org.cn')
browser.jankinessCheck()
返回值
  • <object> testResults:包含分数以及有关测试期间页面 UX 流畅程度的指标的对象。

mockRequest

模拟网络资源。

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

用法
browser.mockRequest(url, filterOptions)
参数
名称类型详情
网址字符串用于匹配要模拟的网址的 URL 通配符。
筛选选项
可选
对象用于模拟网址的其他筛选选项(例如标头、方法)。
返回值
  • <object> mockId:包含模拟资源 ID 的对象。

getMockCalls

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

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

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

clearMockCalls

清除模拟调用的列表。

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

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

respondMock

如果模拟匹配特定资源,则进行响应。

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

用法
browser.respondMock(mockId, payload)
参数
名称类型详情
mockId字符串模拟的 ID
有效载荷
可选
对象有关模拟响应的信息。

欢迎!我如何帮助您?

WebdriverIO AI Copilot