Nightwatch 可以設定為在遠端 Selenium 網格或雲端供應商(例如 BrowserStack 和 Sauce Labs)上執行。

在 BrowserStack 上執行

如果您使用 CLI 公用程式安裝 Nightwatch,並選擇在 BrowserStack 遠端機器上執行,它會在 nightwatch.conf.jstest_settings 屬性下自動產生 BrowserStack 設定區塊。

如果您嘗試在現有專案的 BrowserStack 上執行 Nightwatch,您必須在 nightwatch.conf.js 檔案中新增 browserstack 區塊,作為 test_settings 的子屬性。

nightwatch.conf.js
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 的子屬性。

nightwatch.conf.js
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 檔案中新增下列區塊,如下所示。

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 的子屬性。

nightwatch.conf.js
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 屬性下新增下列區塊,如下所示。

nightwatch.conf.js
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' ] } } }, ... } }

新增設定區塊後,請將遠端主機、連接埠和憑證替換為您自己的,然後開始使用!

如需其他協助,您可以跳到我們的 Discord 伺服器