使用云提供商运行 Nightwatch 测试
Nightwatch 可以配置为在远程 Selenium 网格或云提供商(如 BrowserStack 和 Sauce Labs)上运行。
在 BrowserStack 上运行
如果您使用 CLI 工具安装 Nightwatch 并选择在 BrowserStack 远程机器上运行,它将在 nightwatch.conf.js
的 test_settings
属性下自动生成 BrowserStack 设置块。
如果您尝试在 BrowserStack 上为现有项目运行 Nightwatch,您需要在 nightwatch.conf.js
文件中添加一个 browserstack
块作为 test_settings
的子属性。
module.exports = {
...,
test_settings: {
...,
browserstack: {
selenium: {
host: 'hub.browserstack.com',
port: 443
},
// More info on configuring capabilities can be found on:
// https://www.browserstack.com/automate/capabilities?tag=selenium-4
desiredCapabilities: {
'bstack:options': {
userName: '${BROWSERSTACK_USERNAME}',
accessKey: '${BROWSERSTACK_ACCESS_KEY}'
}
},
disable_error_log: true,
webdriver: {
timeout_options: {
timeout: 15000,
retry_attempts: 3
},
keep_alive: true,
start_process: false
}
},
'browserstack.local': {
extends: 'browserstack',
desiredCapabilities: {
'browserstack.local': true
}
},
'browserstack.firefox': {
extends: 'browserstack',
desiredCapabilities: {
browserName: 'firefox'
}
},
'browserstack.local_firefox': {
extends: 'browserstack.local',
desiredCapabilities: {
browserName: 'firefox'
}
},
...
}
}
一旦 BrowserStack 块出现在 Nightwatch 配置文件中,请将 BrowserStack 用户名和访问密钥替换为您的凭据,您就可以在 BrowserStack 基础设施上运行测试了。
在 LambdaTest 上运行
如果您尝试在 LambdaTest 上为现有项目运行 Nightwatch,您需要在 nightwatch.conf.js
文件中添加一个 lambdatest
块作为 test_settings
的子属性。
module.exports = {
...,
test_settings: {
...,
lambdatest: {
selenium: {
host: 'hub.lambdatest.com',
port: 443
},
'username': '${LAMBDATEST_USERNAME}',
'access_key': '${LAMBDATEST_ACCESS_KEY}',
},
// More info on configuring capabilities can be found on:
// https://www.lambdatest.com/capabilities-generator/
'lambdatest.chrome': {
extends: 'lambdatest',
desiredCapabilities: {
browserName: 'chrome',
'LT:Options': {
'platformName': 'Windows 10',
'browserVersion': '108.0',
'project': 'Project',
}
}
},
'lambdatest.firefox': {
extends: 'lambdatest',
desiredCapabilities: {
browserName: 'firefox',
'LT:Options': {
'platformName': 'Windows 10',
'browserVersion': '108.0',
'project': 'Untitled',
}
}
},
...
}
}
在您在 nightwatch.conf.js
中添加 LambdaTest 配置后,请将 LambdaTest 用户名和访问密钥替换为您的凭据,您就可以在 LambdaTest 云网格上运行测试了。
您还可以使用 自动化功能生成器 配置和添加所需的功能。
在 Sauce Labs 上运行
如果您在通过 CLI 工具设置 Nightwatch 时选择 Sauce Labs 作为云提供商,测试设置将自动添加。
如果您尝试在 Sauce Labs 上为现有项目运行 Nightwatch,您需要在 nightwatch.conf.js
文件中添加以下块,如下所示。
module.exports = {
...,
test_settings: {
...,
saucelabs: {
selenium: {
host: 'ondemand.saucelabs.com',
port: 443
},
// More info on configuring capabilities can be found on:
// https://wiki.saucelabs.com/display/DOCS/Test+Configuration+Options
desiredCapabilities: {
'sauce:options': {
username: '${SAUCE_USERNAME}',
accessKey: '${SAUCE_ACCESS_KEY}',
screenResolution: '1280x1024'
// https://docs.saucelabs.com/dev/cli/sauce-connect-proxy/#--region
// region: 'us-west-1'
// https://docs.saucelabs.com/dev/test-configuration-options/#tunnelidentifier
// parentTunnel: '',
// tunnelIdentifier: '',
},
javascriptEnabled: true,
acceptSslCerts: true,
// https://docs.saucelabs.com/dev/test-configuration-options/#timezone
timeZone: 'London'
},
disable_error_log: false,
webdriver: {
start_process: false
}
},
'saucelabs.firefox': {
extends: 'saucelabs',
desiredCapabilities: {
browserName: 'firefox',
browserVersion: 'latest',
platformName: 'Windows 10'
}
},
...
}
}
一旦 Sauce Labs 块出现在 Nightwatch 配置文件中,请将 Sauce Labs 用户名和访问密钥替换为您的凭据。
在 TestingBot 上运行
您可以使用 TestingBot 在云中的浏览器上运行 Nightwatch 测试。您需要在 nightwatch.conf.js
文件中添加一个 testingbot
块作为 test_settings
的子属性。
module.exports = {
...,
test_settings: {
...,
testingbot: {
selenium: {
host: 'hub.testingbot.com',
port: 443
},
'username': '${TB_KEY}',
'access_key': '${TB_SECRET}',
},
'testingbot.chrome': {
extends: 'testingbot',
desiredCapabilities: {
browserName: 'chrome',
'tb:options': {
'platformName': 'Windows 10',
'version': 'latest',
'name': 'First Nightwatch test',
}
}
},
'testingbot.firefox': {
extends: 'testingbot',
desiredCapabilities: {
browserName: 'firefox',
'tb:options': {
'platformName': 'Windows 10',
'version': 'latest',
'name': 'First Nightwatch test',
}
}
},
...
}
}
在您在 nightwatch.conf.js
中添加 TestingBot 配置后,请将 TestingBot 用户名和访问密钥替换为您的凭据,这些凭据可在 TestingBot 成员区域获得。
您可以使用其他 功能 来定制您在 TestingBot 上的测试。
在远程 Selenium 服务器上运行
如果您使用 create-nightwatch
工具安装 Nightwatch 并选择在远程 selenium 服务器或其他云提供商上运行,远程主机设置将自动添加到 test_settings
中,并带有占位符值。
如果您尝试为现有项目设置此项,您需要在 nightwatch.conf.js
文件中添加以下块,位于 test_settings
属性下,如下所示。
module.exports = {
...,
test_settings : {
...,
remote: {
// Info on all the available options with "selenium":
// /guide/configuration/settings.html#selenium-server-settings
selenium: {
start_process: false,
server_path: '',
host: '<remote-hostname>',
port: 4444
},
username: '${REMOTE_USERNAME}',
access_key: '${REMOTE_ACCESS_KEY}',
webdriver: {
keep_alive: true,
start_process: false
}
},
'remote.firefox': {
extends: 'remote',
desiredCapabilities: {
browserName: 'firefox',
'moz:firefoxOptions': {
args: [
// '-headless',
// '-verbose'
]
}
}
},
...
}
}
添加配置块后,请将远程主机、端口和凭据替换为您的,然后开始吧!