如何运行 nightwatch 三大浏览器各环境测试?

How to run the test in each environment in all 3 major browsers in nightwatch?

我想在 chrome、firefox 和 microsoft edge 浏览器中 运行 我的守夜人测试。此外,我想 运行 在所有三个主要浏览器中的每个环境中进行相同的测试,例如 Staging , UAT ,我不想使用 selenium 服务器。是否可以在不使用 selenium 服务器的情况下进行跨浏览器测试。如果我需要使用 selenium-server,请提供示例配置文件和 运行 测试命令? 请在下面找到我的守夜人配置。我已经检查了 selenium 服务器配置的 nightwatch 文档 - https://nightwatchjs.org/gettingstarted/configuration/#selenium-server-settings 但不确定如何在多个环境中使用它来对所有 3 种不同的浏览器进行相同的测试。

const path = require('path');
const seleniumServer = require('selenium-server');
const chromeDriver = require('chromedriver');
const geckoDriver = require('geckodriver');
const edgeDriver = require('edgedriver');

module.exports = {
    // An array of folders (excluding subfolders) where your tests are located;
    // if this is not specified, the test source must be passed as the second argument to the test runner.
    src_folders: "./tests",
    output_folder : "./reports",
    page_objects_path : "./pages",
    //persist_globals:true,        
    custom_commands_path : ["./commands"],
    custom_assertions_path : ["./custom-assertions"],
    globals_path : "./globals/globals.js",
    disable_colors: false,
    // test_workers : false,
    selenium:{
      start_process: true,
      start_session: false,
      server_path: seleniumServer.path,
      check_process_delay: 5000,
      //log_path: '/logs',
      host: '127.0.0.1',
      port: 4444,
      cli_args: {
        "webdriver.chrome.driver": chromeDriver.path,
        "webdriver.gecko.driver": geckoDriver.path,
        "webdriver.edge.driver": edgeDriver.path
      }
    },
    webdriver: {
      start_process: false
    },
    /* webdriver: {
      start_process: true,
      //chrome port config
      //port: 9515,
      //firefox port config
      port: 4444,
      //setup for firefox driver
      server_path: require('geckodriver').path,
      //server_path: require('chromedriver').path,
      cli_args: [

      ]
    }, */
    //node nightwatch tests/regression/login.js --env default --reporter html-reporter.js
    test_settings: {
      end_session_on_fail: false,
      default: {
        launchUrl : '*********',
        skip_testcases_on_fail:false,
        globals : {
          Username:'*******',
          Password:'*********',
          inbox:'*******'
        },
        screenshots : {
          enabled : false,
          path : './reports/screenshots',
          on_failure: true,
          on_error: true
        },
        request_timeout_options: {
           retry_attempts: 2
        },       
        desiredCapabilities : {
          browserName : 'chrome',
          chromeOptions:{
            args: ["incognito", "--no-sandbox", "--disable-infobars", "--disable-gpu", "--start-maximized"],
            prefs: {
               // disable chrome's annoying password manager
               "profile.password_manager_enabled": false,
               credentials_enable_service: false,
               password_manager_enabled: false,
               download: {
                prompt_for_download: false,
                directory_upgrade: true,
                default_directory: path.join(__dirname+'/fileDownloads')
              },
              plugins: {
                always_open_pdf_externally: true
              }
            }
          }
        },

      },
      SiteUAT: {
          launchUrl : '************************',
          globals : {
            Username:'**********',
            Password:'******',
            envCurr:'*******',
          },     
          desiredCapabilities : {
            browserName: "firefox",
            javascriptEnabled : true,
            platform: 'ANY',
            acceptInsecureCerts: true,
            alwaysMatch: {
                 'moz:firefoxOptions': {
                  args: ["--private","--width=1600","--height=800"],
                  prefs: {
                      'browser.helperApps.alwaysAsk.force':false,
                      'browser.download.folderList':2,
                      //'browser.privatebrowsing.autostart':true,
                      'pdfjs.disabled':true,
                      'browser.helperApps.neverAsk.openFile':"application/pdf,application/zip",
                      'browser.helperApps.neverAsk.saveToDisk':"application/zip,application/octet-stream,image/jpeg,application/vnd.ms-outlook,text/html,application/pdf",
                      'browser.download.manager.showWhenStarting':false,
                      'browser.download.manager.useWindow':false,
                      'browser.download.manager.showAlertOnComplete': false,
                      'browser.download.dir': path.join(__dirname+'/fileDownloads'),
                      'browser.download.downloadDir': path.join(__dirname+'/fileDownloads'),
                      'browser.download.defaultFolder': path.join(__dirname+'/fileDownloads'),

                  }
              }
            } 
          }
      },

  },

  };

对于运行在所有三种浏览器中进行测试,您可以参考下面的示例。

https://github.com/spnraju/nightwatchjs-selenium-example/blob/master/package.json#L13

请克隆项目并安装依赖项。

您可以使用命令 npm 运行 all.

触发测试