跳至主要内容

使用云服务

使用像 Sauce Labs、Browserstack、TestingBot、LambdaTest 或 Perfecto 这样的按需服务与 WebdriverIO 结合非常简单。您需要做的就是在选项中设置服务的userkey

或者,您还可以通过设置特定于云的功能(如build)来参数化您的测试。如果您只想在 Travis 中运行云服务,则可以使用CI环境变量来检查您是否在 Travis 中,并相应地修改配置。

// wdio.conf.js
export let config = {...}
if (process.env.CI) {
config.user = process.env.SAUCE_USERNAME
config.key = process.env.SAUCE_ACCESS_KEY
}

Sauce Labs

您可以设置您的测试以在Sauce Labs中远程运行。

唯一的要求是在您的配置中设置userkey(由wdio.conf.js导出或传递到webdriverio.remote(...))到您的 Sauce Labs 用户名和访问密钥。

您还可以将任何可选的测试配置选项作为键/值对传递到任何浏览器的功能中。

Sauce Connect

如果您想针对无法访问互联网的服务器运行测试(例如在localhost上),则需要使用Sauce Connect

WebdriverIO 不支持此功能,因此您必须自己启动它。

如果您使用的是 WDIO 测试运行器,请下载并在您的wdio.conf.js中配置@wdio/sauce-service。它有助于使 Sauce Connect 运行,并提供更好地将您的测试集成到 Sauce 服务中的其他功能。

使用 Travis CI

但是,Travis CI确实支持在每次测试前启动 Sauce Connect,因此遵循他们的说明是一个选项。

如果您这样做,则必须在每个浏览器的capabilities中设置tunnel-identifier 测试配置选项。默认情况下,Travis 将其设置为TRAVIS_JOB_NUMBER环境变量。

此外,如果您希望 Sauce Labs 按构建编号对您的测试进行分组,则可以将build设置为TRAVIS_BUILD_NUMBER

最后,如果您设置了name,这将更改此构建中 Sauce Labs 中此测试的名称。如果您使用的是 WDIO 测试运行器以及@wdio/sauce-service,WebdriverIO 会自动为测试设置正确的名称。

示例capabilities

browserName: 'chrome',
version: '27.0',
platform: 'XP',
'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
name: 'integration',
build: process.env.TRAVIS_BUILD_NUMBER

超时

由于您是在远程运行测试,因此可能需要增加一些超时时间。

您可以通过将idle-timeout作为测试配置选项来更改空闲超时。这控制了 Sauce 在命令之间等待多长时间才能关闭连接。

BrowserStack

WebdriverIO 还内置了Browserstack 集成。

唯一的要求是在您的配置中设置userkey(由wdio.conf.js导出或传递到webdriverio.remote(...))到您的 Browserstack 自动化用户名和访问密钥。

您还可以将任何可选的支持的功能作为键/值对传递到任何浏览器的功能中。如果您将browserstack.debug设置为true,它将记录会话的屏幕录制,这可能会有所帮助。

本地测试

如果您想针对无法访问互联网的服务器运行测试(例如在localhost上),则需要使用本地测试

WebdriverIO 不支持此功能,因此您必须自己启动它。

如果您确实使用了本地测试,则应在您的功能中将browserstack.local设置为true

如果您使用的是 WDIO 测试运行器,请下载并在您的wdio.conf.js中配置@wdio/browserstack-service。它有助于使 BrowserStack 运行,并提供更好地将您的测试集成到 BrowserStack 服务中的其他功能。

使用 Travis CI

如果您想在 Travis 中添加本地测试,则必须自己启动它。

以下脚本将在后台下载并启动它。您应该在 Travis 启动测试之前运行它。

wget https://www.browserstack.com/browserstack-local/BrowserStackLocal-linux-x64.zip
unzip BrowserStackLocal-linux-x64.zip
./BrowserStackLocal -v -onlyAutomate -forcelocal $BROWSERSTACK_ACCESS_KEY &
sleep 3

此外,您可能希望将build设置为 Travis 构建编号。

示例capabilities

browserName: 'chrome',
project: 'myApp',
version: '44.0',
build: `myApp #${process.env.TRAVIS_BUILD_NUMBER}.${process.env.TRAVIS_JOB_NUMBER}`,
'browserstack.local': 'true',
'browserstack.debug': 'true'

TestingBot

唯一的要求是在您的配置中设置userkey(由wdio.conf.js导出或传递到webdriverio.remote(...))到您的TestingBot用户名和密钥。

您还可以将任何可选的支持的功能作为键/值对传递到任何浏览器的功能中。

本地测试

如果您想针对无法访问互联网的服务器运行测试(例如在localhost上),则需要使用本地测试。TestingBot 提供了一个基于 Java 的隧道,允许您测试无法从互联网访问的网站。

他们的隧道支持页面包含使之正常运行所需的信息。

如果您使用的是 WDIO 测试运行器,请下载并在您的wdio.conf.js中配置@wdio/testingbot-service。它有助于使 TestingBot 运行,并提供更好地将您的测试集成到 TestingBot 服务中的其他功能。

LambdaTest

LambdaTest 集成也已内置。

唯一的要求是在您的配置中设置userkey(由wdio.conf.js导出或传递到webdriverio.remote(...))到您的 LambdaTest 帐户用户名和访问密钥。

您还可以将任何可选的支持的功能作为键/值对传递到任何浏览器的功能中。如果您将visual设置为true,它将记录会话的屏幕录制,这可能会有所帮助。

本地测试的隧道

如果您想针对无法访问互联网的服务器运行测试(例如在localhost上),则需要使用本地测试

WebdriverIO 不支持此功能,因此您必须自己启动它。

如果您确实使用了本地测试,则应在您的功能中将tunnel设置为true

如果您使用的是 WDIO 测试运行器,请下载并在您的wdio.conf.js中配置wdio-lambdatest-service。它有助于使 LambdaTest 运行,并提供更好地将您的测试集成到 LambdaTest 服务中的其他功能。

使用 Travis CI

如果您想在 Travis 中添加本地测试,则必须自己启动它。

以下脚本将在后台下载并启动它。您应该在 Travis 启动测试之前运行它。

wget http://downloads.lambdatest.com/tunnel/linux/64bit/LT_Linux.zip
unzip LT_Linux.zip
./LT -user $LT_USERNAME -key $LT_ACCESS_KEY -cui &
sleep 3

此外,您可能希望将build设置为 Travis 构建编号。

示例capabilities

platform: 'Windows 10',
browserName: 'chrome',
version: '79.0',
build: `myApp #${process.env.TRAVIS_BUILD_NUMBER}.${process.env.TRAVIS_JOB_NUMBER}`,
'tunnel': 'true',
'visual': 'true'

Perfecto

当将 wdio 与Perfecto一起使用时,您需要为每个用户创建一个安全令牌,并将其添加到功能结构中(除了其他功能),如下所示

export const config = {
capabilities: [{
// ...
securityToken: "your security token"
}],

此外,您需要添加云配置,如下所示

  hostname: "your_cloud_name.perfectomobile.com",
path: "/nexperience/perfectomobile/wd/hub",
port: 443,
protocol: "https",

欢迎!我如何帮助您?

WebdriverIO AI Copilot