使用雲端供應商執行 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'
}
},
...
}
}
一旦 Nightwatch 設定檔中存在 BrowerStack 區塊,請將 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 使用者名稱和 access_key 替換為您的憑證,您就可以在 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'
}
},
...
}
}
一旦 Nightwatch 設定檔中存在 Sauce Labs 區塊,請將 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 使用者名稱和 access_key 替換為您的憑證,這些憑證可在 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'
]
}
}
},
...
}
}
新增設定區塊後,請將遠端主機、連接埠和憑證替換為您自己的,然後開始使用!