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 |
有效载荷 可选 | 对象 | 有关模拟响应的信息。 |