Sauce 服务
WebdriverIO服务,提供与Sauce Labs更好的集成。此服务可用于:
- Sauce Labs虚拟机云(桌面网页/模拟器/仿真器)
- Sauce Labs真机云(iOS和Android)
它可以更新任务元数据('name'*、'passed'、'tags'、'public'、'build'、'custom-data'),并根据需要运行Sauce Connect。
此服务还能为您做什么:
- 默认情况下,Sauce服务会在任务开始时更新任务的"name"。这将使您能够在任何给定时间点更新名称。
- 您可以定义一个
setJobName
参数,并根据您的capabilities、选项和套件标题自定义任务名称 - Sauce服务还会将失败测试的错误堆栈推送到Sauce Labs的命令选项卡
- 它允许您自动配置和启动Sauce Connect
- 它会在您的命令列表中设置上下文点,以识别在哪个测试中执行了哪些命令
安装
最简单的方法是通过以下方式将@wdio/sauce-service
作为devDependency保留在您的package.json
中:
npm install @wdio/sauce-service --save-dev
有关如何安装WebdriverIO
的说明可以在这里找到。
配置
要使用虚拟桌面/模拟器/仿真器和真机云的服务,您需要在wdio.conf.js
文件中设置user
和key
。它将自动使用Sauce Labs运行您的集成测试。如果您在Sauce Labs上运行测试,可以通过region
属性指定要在其中运行测试的区域。区域的可用简称为us
(默认)和eu
。这些区域用于Sauce Labs VM云和Sauce Labs真机云。如果您不提供区域,则默认为us
。
如果您希望WebdriverIO自动启动Sauce Connect隧道,您需要设置sauceConnect: true
。如果您想将数据中心更改为EU,请添加region:'eu'
,因为US数据中心设置为默认值。
// wdio.conf.js
export const config = {
// ...
user: process.env.SAUCE_USERNAME,
key: process.env.SAUCE_ACCESS_KEY,
region: 'us', // 或 'eu'
services: [
['sauce', {
sauceConnect: true,
sauceConnectOpts: {
// ...
}
}]
],
// ...
};
如果您想使用现有的Sauce Connect隧道,您只需要提供一个tunnelName
。如果您使用的是共享隧道,并且您不是创建隧道的用户,则必须识别创建隧道的Sauce Labs用户,以便在测试中使用它。在capabilities中包含tunnelOwner
,如下所示:
- Tunnel Name
- Tunnel Owner
export const config = {
// ...
{
browserName: 'chrome',
platformName: 'Windows 10',
browserVersion: 'latest',
// Sauce options can be found here https://docs.saucelabs.com/dev/test-configuration-options/
'sauce:options': {
tunnelName: 'YourTunnelName',
// Example options
build: 'your-build-name',
screenResolution: '1600x1200',
// ...
},
},
// ...
};
export const config = {
// ...
{
browserName: 'chrome',
platformName: 'Windows 10',
browserVersion: 'latest',
// Sauce options can be found here https://docs.saucelabs.com/dev/test-configuration-options/
'sauce:options': {
tunnelName: 'TunnelName',
tunnelOwner: '<username of owner>,
// Example options
build: 'your-build-name',
screenResolution: '1600x1200',
// ...
},
},
// ...
};
Sauce 服务选项
为了授权Sauce Labs服务,您的配置需要包含user
和key
选项。
maxErrorStackLength
此服务将在测试失败时自动将错误堆栈推送到Sauce Labs。默认情况下,它只会推送前5行,但如 果需要,可以更改这一点。请注意,更多行会导致更多WebDriver调用,这可能会减慢执行速度。
类型:number
默认值:5
sauceConnect
如果为true
,它会运行Sauce Connect并在运行浏览器测试的Sauce Labs虚拟机之间打开安全连接。
类型:Boolean
默认值:false
sauceConnectOpts
应用Sauce Connect选项(例如更改端口号或logFile设置)。有关更多信息,请参阅此列表。
注意:指定选项时,应省略--
。它也可以转换为驼峰式(例如shared-tunnel
或sharedTunnel
)。
类型:Object
默认值:{ }
uploadLogs
如果为true
,此选项将所有WebdriverIO日志文件上传到Sauce Labs平台以供进一步检查。确保您在wdio配置中设置了outputDir
以将日志写入文件,否则数据将流式传输到stdout,无法上传。
类型:Boolean
默认值:true
setJobName
允许用户根据工作参数(如WebdriverIO配置、使用的capabilities和原始套件标题)动态设置任务名称。
类型:Function
默认值:(config, capabilities, suiteTitle) => suiteTitle
覆盖生成的名称元数据
服务会自动从套件名称、浏览器名称和其他信息生成每个测试的名称。
您可以通过提供所需capability的name
值来覆盖此设置,但这将产生所有测试都具有相同名称的副作用。
有关WebdriverIO的更多信息,请参阅主页。