如何运行 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.
触发测试
我想在 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.
触发测试